Emacs/Komendy

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania

Sposoby wprowadzania poleceń[edytuj]

Jest kilka sposobów :

  • polecenie elispa
  • skrót klawiszowy Emacsa
  • skrót klawiszowy Emacsa i polecenie elispa ( mieszana komenda)
  • menu Emacsa

Przykład - lista buforów :

  • (list-buffers)
  • C-x C-b
  • M-x list-buffers
  • Menu/Buffers/List All Buffers

Oczywiście wszystkie te sposoby dają ten sam efekt.


Skróty klawiszowe Emacsa[edytuj]

Emacs jest zaprojektowany do pracy z klawiaturą. Można używać myszy, ale nie jest to tak efektywne jak korzystanie z klawiatury. [1] Skrótów jest bardzo dużo, ale nie musimy pamiętać wszystkich tylko kilka potrzebnych nam do pracy.[2]


C-h b - wyświetla listę wszystkich aktualnie zdefiniowanych sekwencji klawiszy


Notacja[edytuj]

Przedtem zapoznaj się ze sposobem w jaki zapisywane są sekwencje klawiszy ( ang. Key Sequences ) w dokumentacji Emacsa[3]

Komendy Emacsa wymagają na ogół wciśnięcia klawisza CONTROL (oznaczanego czasami Ctrl lub CTL) lub klawisza META (oznaczanego czasami EDIT albo ALT). Dalej będziemy stosować następujące skróty:

C-<znak> 

oznacza naciśnięcie klawisza <znak> przy wciśniętym klawiszu CONTROL.

Na przykład

C-f 

będzie odpowiadało naciśnięciu f przy wciśniętym klawiszu CONTROL.

M-<znak> 

oznacza przytrzymanie klawisza META lub ALT przy naciskaniu klawisza <znak>. Zamiast tego można nacisnąć i puścić klawisz ESC, a potem nacisnąć klawisz <znak>.[4]

Typy[edytuj]

Definiowanie skrótów w Emacsie

Globalne[edytuj]

Dynamiczne[edytuj]

Można wyświetlić listę dostępnych skrótów, które sam utworzyłeś ( ang. dynamic abbreviations) :

M-x list-abbrevs

Jeśli Emacs wyświetli pustą tabelę to znaczy że :

  • nie utworzyłeś żadnych skrótów
  • utworzyłeś, ale nie zapamiętałeś.

Mieszane polecenia[edytuj]

Przykład :

jeżeli naciśniesz C-x wtedy Emacs wyświetli w minibuforze :

C-x -

Teraz możesz wprowadzić komendę elispa lub dokończyć skrót.

Podstawowe polecenia[edytuj]

Edycja[edytuj]

Przesuwanie kursora[edytuj]

Możemy przesunąć kursor o jednostkę tekstu :

  • znak
  • słowo
  • linię
  • zdanie
  • ekran


Polecenia elispa Skrót klawiszowy Emacsa Opis polecenia
forward-char C-f Przesunięcie o jeden znak do przodu ( w obrębie aktualnego bufora)
backward-char C-b Przesunięcie o jeden znak do tyłu.
forward-word M-f Przesunięcie o słowo do przodu.
backward-word M-b Przesunięcie o słowo do tyłu.
previous-line C-p Przesunięcie o jedną linie do góry.
forward-line C-n Przesunięcie o jedną linie w dół.
forward-sentence M-e Przesunięcie o jedno zdanie do przodu.
backward-sentence M-a Przesunięcie o jedno zdanie do tyłu.
scroll-up C-v lub PgUp Przesunięcie o jeden ekran w górę.
M-v lub PgDn Przesunięcie o jeden ekran w dół.

Możemy się przesuwać w obrębie jednostki tekstu:

  • wiersza
  • funkcji
  • ekranu
  • bufora
Polecenia elispa Skrót klawiszowy Emacsa Opis polecenia
C-a Przesunięcie na początek wiersza
C-e Przesunięcie na koniec wiersza
C-m-a Przesunięcie na początek funkcji
C-m-e Przesunięcie na koniec funkcji
C-u C-l Przesunięcie bieżącego wiersza na środek ekranu
M-< Przesunięcie na początek bufora
M-> Przesunięcie na koniec bufora

Inne polecenia[edytuj]

Polecenia elispa Skrót klawiszowy Emacsa Opis polecenia
undo C-/ lub C-u Cofnięcie ostatniej zmiany.
keyboard-quit C-g Zaniechanie ostatniej komendy.
fill-paragraph M-q Wyrównanie tekstu do lewej krawędzi.
search-word C-s Szukanie słowa w buforze.

Pliki[edytuj]

  • `C-x C-f' - otwarcie pliku
  • `C-x C-s' - zapisanie pliku
  • `C-x C-w' - zapisanie pliku o danej nazwie
  • C-h v buffer-file-name aby zobaczyć nazwę pliku związanego z buforem

Bufory[edytuj]

Polecenie elispa Skrót klawiszowy Emacsa Opis polecenia
find-file C-x C-f Odwiedzenie pliku (otworzenie lub stworzenie nowego pliku).
save-buffer C-x C-s Zapis aktualnego bufora.
write-file C-x C-w Zapisz jako...
set-marker C-[space]/C-@ Zaznaczenie tekstu, które chcesz skopiować czy wyciąć.
cut C-w Wycięcie zaznaczonego tekstu.
copy M-w Skopiowanie zaznaczonego tekstu.
paste C-y Wklejenie tekst z schowka.
save-buffers-kill-emacs C-x C-c Wyjście z Emacsa.
kill-buffer C-x k Zamknij bufor, jeżeli nie ma podanej nazwy zostanie zamknięty obecny bufor.
C-x C-c Zamknięcie Emacs-a
C-h v buffer-file-name nazwa pliku związanego z buforem



Minibufor[edytuj]

Minibufor

Polecenia elispa Skrót klawiszowy Emacsa Opis polecenia
execute-extended-command M-x Przenosi do minibufora i oczekuje na wprowadzenie komendy
eval-expression M-: Pozwala na wpisanie 1 wyrażenia w minibuforze. Wykonuje je i daje wynik
minibuffer-complete TAB Uzupełnij ile potrafisz
minibuffer-complete-word SPC uzupełnij o jedno słowo
minibuffer-complete-and-exit RET Uzupełnij i wykonaj
minibuffer-completion-help ? Pokaż możliwe uzupełnienia
previous-history-element M-p Wstaw ( z historii) tekst uprzednio wprowadzony do minibufora
next-history-element M-n Wstaw ( z historii) następny tekst do minibufora

Okna[edytuj]

  • `C-x 2' - podziel wybrane okno pionowo
  • `C-x 3' - podziel wybrane okno poziomo
  • `C-x 0' - usunięcie okna

C-x 2 - podziel okno w poziomie C-x 3 - podziel okno w pionie C-x 1 - jedno okno C-x o - przechodzenie pomiedzy oknami C-x b - przejscie do bufora (wpisanie) C-x C-b - przejscie do bufora (menu)


Ramki[edytuj]

 C-x 5 o -- other frame
 C-x 5 0 -- delete frame
 C-x 5 1 -- delete other frame
 C-x 5 2 -- make frame
 C-x C-z -- Iconify Frame

Pomoc[edytuj]

Polecenia elispa Skrót klawiszowy Emacsa Opis polecenia
help-with-tutorial C-h C-h wyświetla rodzaje pomocy[5]
describe-mode C-h m opis aktualnego trybu emacs-a
help-with-tutorial C-h t samouczek emacs-a
describe-variable C-h v Opisz zmienną : podaje DocString i wartość
describe-function C-h v Opisz funkcje
describe-bindings C-h b wyświetla listę wszystkich aktualnie zdefiniowanych sekwencji klawiszy
apropos-command C-h a wyświetla listę wszystkich poleceń elispa zawierających w nazwie podany łańcuch

Lisp[edytuj]

Komendy związane z Lispem. Zobacz również polecenia związane z trybami

Polecenia elispa Skrót klawiszowy Emacsa Opis polecenia
eval-last-sexp C-x C-e Wykonaj s-wyrażenie przed kursorem[6]
C-M-x Wykonaj bieżącą defun
eval-region M-x eval-region Wykonaj blok
eval-current-buffer M-x eval-current-buffer Wykonaj bufor
M-ESC Czytaj i wykonaj minibufor
C-x ESC ESC Powtórnie wykonaj ostatnie polecenie z minibufora
load-file M-x load-file Czytaj i wykonaj plik z programem w Lispie
load-library M-x load-library załaduj bibliotekę
describe-variable C-h v Opisz zmienną : podaje DocString i wartość

Tryby pracy[edytuj]

Otwieranie trybów pracy Emacsa

Lisp[edytuj]

Tryby dla Lispa

Ogólne tryby :

M-x ielm  ; Otwiera tryb IELM ( Inferior Emacs Lisp Mode). 
M-x slime ; Otwiera tryb SLIME
M-x run-ilisp ; Common Lisp lub Scheme

Specyficzne dla dialektu języka :

M-x allegro ;
M-x select-ilisp ; (C-z S) Jeśli są dostępne różne dialekty

Inne tryby[edytuj]

M-x doctor 

Otwiera tryb doctor w którym działa program ELIZA, symulujący psychoanalityka.

Źródła[edytuj]

  1. emacs manual : User Input
  2. Zakład Biofizyki Obliczeniowej i Bioinformatyki UJ :Emacs
  3. Oznaczenia klawiszy w Emacs wiki
  4. Krótki samouczek Emacsa ( zawarty w programie Emacs)
  5. emacswiki  : EmacsNewbieHelpReference
  6. emacswiki :EvaluatingExpressions