Emacs/Komendy

Z Wikibooks, biblioteki wolnych podręczników.

Uruchamianie Emacsa[edytuj]

Aby uruchomić GNU Emacsa, możesz wykonać następujące kroki:

  1. Upewnij się, że GNU Emacs jest zainstalowany w twoim systemie. Możesz sprawdzić, czy Emacs jest zainstalowany, wpisując „emacs” w oknie terminala. Jeśli Emacs jest zainstalowany, powinien się uruchomić po naciśnięciu „Enter”. Jeśli Emacs nie jest zainstalowany, możesz go pobrać i zainstalować ze strony internetowej GNU Emacs (https://www.gnu.org/software/emacs/).
  2. Otwórz okno terminala (lub wiersz polecenia w systemie Windows) w swoim systemie.
  3. Wpisz „emacs” w oknie terminala i naciśnij „Enter”. Spowoduje to uruchomienie Emacsa i otwarcie nowego bufora w trybie domyślnym (zwykle „trybie podstawowym”).
  4. Aby otworzyć plik w Emacsie, możesz użyć menu „Plik” na pasku menu lub wpisać „C-x C-f” (przytrzymaj klawisz „Ctrl” i naciśnij „x”, następnie ponownie przytrzymaj klawisz „Ctrl” i naciśnij „f”). Spowoduje to otwarcie monitu „znajdź plik”, w którym możesz wpisać nazwę pliku, który chcesz otworzyć.
  5. Po otwarciu pliku możesz rozpocząć jego edycję za pomocą różnych poleceń i skrótów klawiszowych dostępnych w Emacsie. Na przykład, aby zapisać plik, możesz wpisać „C-x C-s” (przytrzymaj klawisz „Ctrl” i naciśnij „x”, a następnie ponownie przytrzymaj klawisz „Ctrl” i naciśnij „s”).
  6. Aby wyjść z Emacsa, możesz użyć menu "Plik" na pasku menu lub wpisać "C-x C-c" (przytrzymaj klawisz "Ctrl" i naciśnij "x", następnie przytrzymaj ponownie klawisz "Ctrl" i naciśnij "c "). Spowoduje to wyświetlenie monitu o zapisanie niezapisanych zmian przed wyjściem z Emacsa.

Zrozumienie interfejsu Emacs[edytuj]

Interfejs Emacsa może początkowo wydawać się przytłaczający, ale kiedy zrozumiesz podstawowe pojęcia i skróty klawiszowe, może to być bardzo potężny i wydajny sposób edycji tekstu, kodu i innych dokumentów. Oto kilka kluczowych komponentów i funkcji interfejsu Emacsa:

  1. Bufor: Bufor to tymczasowa przestrzeń robocza w Emacsie, w której możesz otwierać i edytować pliki lub pisać nowy tekst. Przy pierwszym uruchomieniu Emacsa zostanie wyświetlony bufor w „trybie podstawowym”. Możesz utworzyć nowe bufory, wpisując „C-x b” (przytrzymaj klawisz „Ctrl” i naciśnij „x”, następnie ponownie przytrzymaj klawisz „Ctrl” i naciśnij „b”).
  2. Linia trybu: Linia trybu to pasek na dole okna Emacsa, który wyświetla informacje o bieżącym buforze i trybie. Pokazuje nazwę bufora, tryb główny (np. „tryb podstawowy”, „tryb tekstowy”, „tryb Pythona”) i wszelkie aktywne tryby pomocnicze.
  3. Pasek menu: Pasek menu u góry okna Emacsa zapewnia dostęp do różnych menu i poleceń. Do poruszania się po menu i wykonywania czynności można używać myszy lub skrótów klawiaturowych.
  4. Skróty klawiszowe: Emacs jest znany z rozbudowanego zestawu skrótów klawiaturowych lub skrótów klawiszowych, które umożliwiają szybkie i wydajne wykonywanie czynności. Na przykład, aby zapisać plik, możesz wpisać „C-x C-s” (przytrzymaj klawisz „Ctrl” i naciśnij „x”, a następnie ponownie przytrzymaj klawisz „Ctrl” i naciśnij „s”). Aby wyjść z Emacsa, możesz wpisać „C-x C-c” (przytrzymaj klawisz „Ctrl” i naciśnij „x”, następnie ponownie przytrzymaj klawisz „Ctrl” i naciśnij „c”).
  5. Dzielenie okien: Emacs pozwala podzielić okno na wiele ramek, dzięki czemu możesz pracować na wielu buforach jednocześnie. Możesz podzielić okno w pionie, wpisując „C-x 2”, lub w poziomie, wpisując „C-x 3”. Aby przełączać się między ramkami, możesz użyć polecenia „inne okno”, wpisując „C-x o”.
  6. Personalizacja: Emacs jest wysoce konfigurowalny i rozszerzalny. Możesz modyfikować skróty klawiszowe, zmieniać schemat kolorów, instalować pakiety nowych funkcji i tworzyć własne niestandardowe funkcje i tryby. Konfiguracja Emacsa jest zwykle przechowywana w pliku o nazwie „.emacs” lub „init.el”.

To tylko kilka z podstawowych funkcji interfejsu Emacsa. Dzięki praktyce i eksperymentom możesz nauczyć się efektywnie korzystać z Emacsa i dostosowywać go do własnych potrzeb i przepływu pracy.

Podstawowe polecenia i skróty[edytuj]

Sposoby wprowadzania poleceń[edytuj]

Jest kilka sposobów :

  • polecenie elispa
  • skrót klawiszowy Emacsa
  • skrót klawiszowy Emacsa i polecenie elispa (mieszane polecenie)
  • 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.

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.

Nawigacja w Emacsie[edytuj]

Aby przesunąć kursor w Emacsie, użyj klawiszy strzałek lub następujących klawiszy:

  • C-f: Przejdź do przodu o jeden znak
  • C-b: Cofnij się o jeden znak
  • C-n: Przejdź do następnej linii
  • C-p: Przejdź do poprzedniej linii
  • C-a: Przejdź na początek linii
  • C-e: Przejdź na koniec linii
  • M-f: Przejdź do przodu o jedno słowo
  • M-b: Cofnij się o jedno słowo
  • M-a: Przejdź na początek zdania
  • M-e: Przejdź na koniec zdania
  • M-<: Przejście na początek bufora
  • M->: Przejdź na koniec bufora

Tworzenie i zapisywanie plików[edytuj]

  • Aby utworzyć nowy plik w Emacsie, użyj polecenia „C-x C-f” (dla „znajdź plik”) i wprowadź nazwę nowego pliku.
  • Aby zapisać plik, użyj polecenia „C-x C-s” (dla „zapisz”).

Podstawowa edycja tekstu[edytuj]

  • Aby wstawić tekst, po prostu zacznij pisać.
  • Aby usunąć tekst, użyj klawisza Backspace lub Delete.
  • Aby cofnąć akcję, użyj polecenia „C-/” lub „C-x u”.
  • Aby powtórzyć akcję, użyj polecenia „C-g C-/”.

Zaawansowane polecenia edycyjne[edytuj]

  • Aby wyciąć tekst, użyj polecenia „C-w”.
  • Aby skopiować tekst, użyj polecenia „M-w”.
  • Aby wkleić tekst, użyj polecenia „C-y”.
  • Aby zabić (usunąć i zapisać w pierścieniu zabijania) tekst, użyj polecenia „C-k”.
  • Aby wyrwać (wkleić) tekst z pierścienia zabijania, użyj polecenia „M-y”.
  • Aby transponować znaki (zamienić dwa sąsiednie znaki), użyj polecenia „C-t”.
  • Aby transponować słowa (zamienić dwa sąsiednie słowa), użyj polecenia „M-t”.
  • Aby transponować linie (zamienić dwie sąsiednie linie), użyj polecenia „C-x C-t”.

Kopiowanie, wycinanie i wklejanie tekstu[edytuj]

  • Aby skopiować tekst, użyj polecenia „M-w” (od „copy to kill ring”).
  • Aby wyciąć tekst, użyj polecenia „C-w” (dla „zabicia regionu”).
  • Aby wkleić tekst, użyj polecenia „C-y” (od „yank”).

Wyszukiwanie i zastępowanie tekstu[edytuj]

  • Aby wyszukać tekst, użyj polecenia „C-s” (od „isearch-forward”) i wpisz wyszukiwany ciąg.
  • Aby wyszukać wstecz, użyj polecenia „C-r” (dla „isearch-backward”).
  • Aby zamienić tekst, użyj polecenia „M-x zastąp-łańcuch” i wprowadź ciąg wyszukiwania i ciąg zastępczy.

Formatowanie tekstu[edytuj]

  • Aby ustawić krój czcionki zaznaczonego tekstu, użyj polecenia „M-x set-face-attribute”.
  • Aby ustawić kolor pierwszego planu lub tła zaznaczonego tekstu, użyj polecenia „M-x set-face-background” lub „M-x set-face-foreground”.
  • Aby ustawić rozmiar czcionki zaznaczonego tekstu, użyj polecenia „M-x set-face-font”.
  • Aby ustawić styl czcionki zaznaczonego tekstu, użyj polecenia „M-x set-face-bold” lub „M-x set-face-italic”.

Ź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