Emacs/Komendy
Uruchamianie Emacsa
edytujAby uruchomić GNU Emacsa, możesz wykonać następujące kroki:
- 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/).
- Otwórz okno terminala (lub wiersz polecenia w systemie Windows) w swoim systemie.
- Wpisz „emacs” w oknie terminala i naciśnij „Enter”. Spowoduje to uruchomienie Emacsa i otwarcie nowego bufora w trybie domyślnym (zwykle „trybie podstawowym”).
- 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ć.
- 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”).
- 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
edytujInterfejs 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:
- 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”).
- 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.
- 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.
- 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”).
- 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”.
- 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
edytujSposoby wprowadzania poleceń
edytujJest 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
edytujEmacs 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
edytujPrzedtem 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
edytujDefiniowanie skrótów w Emacsie
Globalne
edytujDynamiczne
edytujMoż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
edytujPrzykł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
edytujPrzesuwanie kursora
edytujMoż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
edytujPolecenia 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
edytujPolecenie 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
edytujPolecenia 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
edytujC-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
edytujPolecenia 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
edytujKomendy 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
edytujOtwieranie trybów pracy Emacsa
Lisp
edytujOgó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
edytujM-x doctor
Otwiera tryb doctor w którym działa program ELIZA, symulujący psychoanalityka.
Nawigacja w Emacsie
edytujAby 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- ↑ emacs manual : User Input
- ↑ Zakład Biofizyki Obliczeniowej i Bioinformatyki UJ :Emacs
- ↑ Oznaczenia klawiszy w Emacs wiki
- ↑ Krótki samouczek Emacsa ( zawarty w programie Emacs)
- ↑ emacswiki : EmacsNewbieHelpReference
- ↑ emacswiki :EvaluatingExpressions