Przejdź do zawartości

Emacs/Struktury

Z Wikibooks, biblioteki wolnych podręczników.
Emacs

Zrozumienie buforów i okien

[edytuj]

Bufor

[edytuj]

Bufor ( ang. buffer) odpowiada dokumentowi lub wirtualnemu pulpitowi ( ang. workspace) w innych edytorach. Może zawierać tekst lub obrazy. Często zawartość bufora pochodzi z pliku.

Użyj komendy :

C-h v buffer-file-name

aby zobaczyć nazwę pliku.[1]

Bufor może być widoczna w jakimś oknie (ang. window) lub nie.

Lista buforów możemy uzyskać za pomocą komendy : C-x C-b

Każdy bufor ma dokładnie jeden główny tryb oraz jeden lub więcej podrzędnych trybów

Rodzaje buforów

[edytuj]

Mini bufor

[edytuj]

Minibufor ( ang. MiniBuffer , minibuffer ) jest to bufor służący do komunikacji między użytkownikiem a programem poprzez :

  • wprowadzanie komend
  • argumentów do komend

Znajduje się w osobnej ramce lub u dołu każdej ramki.

Pod wieloma względami minibufor jest jak inne bufory. Możesz w nim edytować tekst.

Większość sekwencji klawiszy jest tutaj dostępna. Są również zdefiniowane własne skróty klawiaturowe.

Aby skasować to co robisz w minibuforze użyj :

C-g

Zobacz również RefocusMinibuffer.

Wszystko co wpiszesz w minibuforze ( komendy, argumenty) jest dodawane do historii ( ang. MinibufferHistory ). Możesz wczytywać informacje z historii aby je edytować i użyć ponownie.

[2]

EchoArea

[edytuj]

Czasami miejsce w którym wprowadzasz komendy jest używane do wyświetlania wiadomości ( ang. informative messages ) . Wtedy ten obszar jest nazywany EchoArea a nie minibuffer.

*Buffer List*

[edytuj]

Jest to bufor zawierający listę buforów.

Polecenie :

  • Menu/Buffers/List All Buffers
  • skrót : C-x C-b

otwiera bufor *Buffer List* zawierający poniższy tekst  :


CRM   Buffer                   Size Mode                File
*     *scratch*                192  Lisp Interaction
*     TUTORIAL (English)     46728  Text
%     *GNU Emacs*              806  Fundamental
*     *Messages*              1698  Fundamental
%     *Completions*            273  Completion List


Lista zawiera kilka kolumn o nagłówkach :[3]

  • C od ang. Current ( aktualny). Kropka w tej kilumnie oznacza aktualny bufor
  • R od ang. Read only ( tylko do odczytu). Procent w tej kolumnie oznacza ze bufor jet tylko do odczytu
  • M od ang. MOdified. Gwiazdka w tej kolumnie oznacza że bufor się zmienił
  • Buffer zawierający nazwy buforów
  • Size oznaczający wielkość zawartości bufora
  • Mode - tryb bufora
  • File - skojarzony plik

Nazwy buforów nie skojarzonych z plikiem rozpoczynają się od gwiazdki ( ang. asterix) '* ', co nie znaczy że nie można zapisać ich do pliku. [4]

*scratch*

[edytuj]

Ten bufor służy do testowania kodu. Możemy nazwać brudnopisem.

Okno

[edytuj]

Oknem (ang. Window) w Emacsie jest obszar, w którym wyświetlany jest bufor. Okna Emacsa nie należy mylić z oknem programu uruchomionego w trybie GUI ( w MS Windows to jest okno a w Emacsie ramka).[5]

Okno może być podzielone w pionie lub poziomie na dwa okna. Te nowe okna znowu mogą być podzielone w pionie lub poziomie itd. U dołu każdego okna jest wiersz trybu ( ang. mode line ).

Wiersz trybu

[edytuj]

Wiersz trybu (ang. modeline) znajduje się u dołu każdego okna ( powyżej minibufora). [6]

-cs:ch-fr  buf      pos line   (major minor)------

Zawiera : [7]

  • stan bufora :
    • zmodyfikowany - para gwiazdek,
    • niezmodyfikowany - myślniki,
    • 'tylko do odczytu' - para znaków '%'
  • nazwa bufora lub edytowanego pliku : buf
  • tryb  : (major minor)
  • ilość treści edytowanego pliku widoczna na ekranie:[8]
    • All - widać cały plik
    • Top - początek pliku
    • Bot - koniec pliku
    • Procent - NN% oznacza procent zawartości pliku ponad widocznym oknem edycji

Ramka

[edytuj]

Ramka (ang. frame) może zawierać jedno lub kilka okien. [9]

frame
---------------------
|  window1          |
|  --------------   |
|  |  bufor1    |   |
|  |            |   |
|  --------------   |
|  window2          |
|  --------------   |
|  |   bufor2   |   |
|  |            |   |
|  --------------   |
---------------------

Bibliografia

[edytuj]
  1. Emacs wiki - buffer doc
  2. emacswiki - MiniBuffer doc
  3. CRM in Buffer List
  4. emacswiki : Buffer
  5. GNU Emacs gierki -Half-lifeboard
  6. emacs manual : Mode Line
  7. T. Przechlewski : Redagowanie plików tekstowych za pomocą edytora Emacs
  8. Zakład Biofizyki Obliczeniowej i Bioinformatyki UJ :Emacs
  9. emacswiki - Frame doc