1 | Deprecated | ||
2 | Einleitung | ||
3 | Die wichtigsten Befehle | ||
3. | 1 | Hinweis | |
3. | 2 | Befehlsübersicht | |
4 | Startdatei: .emacs | ||
5 | Startdatei .vimrc | ||
6 | Sonstige Features | ||
7 | Nachteile | ||
8 | Emacs vs. Vi | ||
9 | Links | ||
10 | Bücher | ||
11 | About |
C-TASTE: Die Strg-Taste halten und gleichzeitig die entsprechende TASTE drücken. Beispiel: C-k --> Die Zeile wird von der Cursor Position bis zum Ende gelöscht. M-TASTE: Die Alt (Meta) Taste halten und dann die entsprechende TASTE drücken. Bei manchen Systemen ist das nicht möglich, dann kann man auch Esc drücken und anschließend die gewünschte Taste drücken. Beispiel: M-x pwd --> Eingabe des Befehls "pwd" im Command-Buffer. Viele dieser Tastenkombinationen funktionieren auch mit Programmen, die die Readline Bibliothek verwenden (z.B. Bash). Für Vi-Benutzer, die ggf. mit dem Emacs arbeiten, bzw. für Emacs-Benutzer, die mit dem Vi arbeiten müssen, ist in der rechten Spalte der äquivalente Befehl des Vi Editors. Eine 1:1 Abbildung zwischen beiden Editoren ist nicht möglich, da es beim Emacs nur einen Modus gibt. Die Beispiele beziehen sich auf den weit verbreiteten Vim.
Emacs Tastenkombination | Befehl | Vim Äquivalent |
---|---|---|
C-h t |
Interaktives Tutorial | vimtutor (Auf der Shell) |
C-h ? |
Aufrufen der Hilfe. | :help |
C-a |
Gehe an den Anfang der Zeile. |
^ |
C-e |
Gehe an das Ende der Zeile. |
$ |
C-x k |
Schließt die aktuelle Datei. | :q |
C-x C-c |
Beendet Emacs. | :q |
C-g |
Bricht den aktuellen Befehl ab. Ähnlich wie C-c auf der Kommandozeile. | ESC |
C-x C-f |
Öffnet eine Datei. | :e |
C-x i |
Einfügen einer Datei an der aktuellen Cursor Position. | :rDateiname |
C-x C-s |
Speichere die aktuelle Datei. | :w bzw. :wNeueDatei |
C-k |
Lösche bis zum Ende der Zeile (Mehrere Zeilen kann man gleich hintereinander löschen). | D (lösche bis Zeilenende) |
C-y |
Einfügen der zuletzt mit C-k gelöschten Zeilen. | p |
M-y |
Durchblättern des Kill-Rings. Dieses Feature gefällt mir besonders. Der Text wird mit C-k in den Kill-Ring verschoben. Mit C-y fügt man den zuletzt gelöschten Text ein. Nach C-y kann man mit M-y durch den Kill-Ring durchblättern und älteren Text einfügen. | Einen Kill-Ring gibt es auch im vi. Mittels ESC "xNp mit N zwischen 0 bis 9, kann man auf die älteren ausgeschnittenen Bereiche zugreifen. |
C-l |
Gehe in die Mitte und zeichne den Bildschirm neu. Das ist nützlich, wenn die Anzeige gestört ist, weil z.B. ein anderes Programm auf die gleiche Konsole geschrieben hat. | C-l |
C-s |
I-search (Interaktive Suche): Während man die gesuchten Zeichen eingibt springt Emacs zu der Stelle, die man sucht. |
/ (Nicht interaktiv. |
C-r |
Wie C-s, bloß es wird rückwärtsgesucht. Dieses Feature funktioniert auch in der Bash: So kann man schnell zu bestimmten Zeilen zurück blättern. | ? (Nicht interaktiv) |
C-x ( |
Definieren von Keyboard-Makros. Wird mit "C-x )" wieder geschlossen.
Sehr nützlich in Verbindung mit
"M-x apply-macro-to-region-lines". |
qaSpeichere folgende Eingaben als Makro "a". Mit "q" wird das Makro beendet. |
C-x e |
Führt das mit "C-x (" definierte Keyboard-Makro aus. |
@aFühre das Makro "a" aus. |
M-x compile |
Mit dieser Funktion kann man einen Shell-Befehl aufrufen, der z.B. ein Programm übersetzt. Kommt es zu einem Syntax-Fehler kann man direkt zu der Stelle im Quelltext springen, an der sich der Fehler befindet. |
:makeÜber "set makeprg=..." einstellbar. |
C-x 2 |
Teilt das aktuelle Fenster in zwei Hälften. Sehr nützlich wenn man von einer Datei abschreibt, um eine zweite zu bearbeiten. |
C-w s (:split) |
C-x o |
Wechselt zum anderen Fenster, falls die Anzeige in mehrere Teile aufgesplittet ist. |
C-w PFEIL_HOCH | PFEIL_RUNTER |
C-x C-b |
Zeige alle offenen Puffer an |
:ls |
C-x 0 |
Zeigt, falls die Anzeige in mehrere Hälften geteilt ist, wieder ein einziges Fenster an. |
C-w q (:close) |
C-x b |
Wechsel zu einer anderen offenen Datei. |
(:buffer dateiname.txt) |
M-x toggle-read-only |
Macht die Datei schreibgeschützt. |
:set readonly; set: ro :set noro (Schreibschutz aufheben) |
M-PFEIL_TASTE |
So kann man wort- oder auch klammernweise Springen. Sinnvoll, wenn man z.B. in Lisp zur entsprechenden schließenden Klammer möchte. | Zur entsprechenden anderen Klammer springen: % |
M-x query-replace |
Interaktives Ersetzen von Zeichenketten. |
:,$s/alt/neu/gcDer Doppelpunkt steht für den Anfang eines Befehls. Das Komma bedeutet "bis". Das Dollarzeichen heißt "Dateiende". Das "s" bedeutet "Substitute" (Ersetzen). Aufgrund des "g" werden alle passenden Stellen einer Zeile ersetzt (nicht nur die erste). Das "c" schaltet den interaktiven Modus ein. Vim kennt verschiedene Syntaxformen von regulären Ausdrücken. Mit \v kann man die von Perl und Python gewohnte Syntax verwenden. Siehe auch vim magic. Folgender Ausdruck passt z.B. auf die Ausgaben von "du -a" ,$s/\v^\d+\t(.*)$/\1/ |
M-< |
Gehe zum Anfang der Datei. | 1G oder gg |
M-> |
Gehe zum Ende der Datei. | G |
C-u ZAHL |
Numerische Argument, der nächste Befehl wird entsprechend
oft ausgeführt: C-u 8 - ==> "--------" |
ZAHL AKTION |
C-SPACE |
Markiere die aktuelle Cursor Position. | ma (Speichere die Position als "a") |
C-SPACE C-s foo PFEIL-LINKS C-w |
Lösche von aktueller Position bis zum Wort "foo" |
d/foo oder emacsähnlich mit visual Block: v /foo[RETURN] d |
C-SPACE C-r foo PFEIL-RECHTS C-w |
Lösche von aktueller Position bis zum Wort "foo" (rückwärts). |
d?foo |
M-w |
Kopiere die markierte Region in den Kill-Ring. Region mit C-SPACE vorher markieren. Die Region kann mit C-y wieder eingefügt werden. | :'a,'by (Kopiere (y (yank)) von Markierung "a" bis Markierung "b". Einfügen mit "p") |
C-w |
Verschiebe die markierte Region in den Kill-Ring. | :'a,'bd (Lösche von Markierung "a" bis Markierung "b". Einfügen mit "p") |
C-x u |
Undo (C-_ geht auch). | u |
M-! |
Führe Shell-Befehl aus. | :sh oder ESC ! |
M-q |
Formatiere den aktuellen Absatz: Bricht Zeilen ab 78 Zeichen um. Funktioniert z.B. im Text- und HTML-Modus. |
Formatieren mit dem externen Befehl "fmt": !}fmt Oder "gqap" |
M-g oder M-x goto-line |
Gehe zu einer bestimmten Zeilennummer. |
_ZAHL_G (z.B. 45G) |
set-variable truncate-lines 1 set-variable truncate-lines nil |
Lange Zeilen nicht umbrechen. Analog "-S" bei dem Pager "less". |
:set nowrap :set wrap |
C-x= M-x what-cursor-position |
Zeige Informationen zu dem aktuellen Zeichen des Cursors
(oktal, dezimal und hexadezimaler Wert):
ü (0374, 252, 0xfc) point=238 of 291(81%) column 0 |
ga |
C-u 500 PFEIL-RECHTS |
Gehe zu dem N-ten Zeichen in einer Datei. (Offset) |
:goto 500 |
M-x whitespace-visual-mode (TAB ist gelb, SPACE türkis) |
Unterschied zwischen TAB und SPACE darstellen. |
:set list (^I == TAB) |
C-u C-x TAB --> C-u numeric Argument von 4 "C-x TAB" --> vier Leerzeichen nach rechts C-u -4 C-x TAB --> vier Leerzeichen nach links einrücken. |
Aktuellen Bereich 4 oder N Zeichen nach rechts/links verschieben. |
;;; .emacs Thomas Guettler <guettli@thomas-guettler.de> ;Syntax-Highlighting (global-font-lock-mode t) ; shift-pageUp/pageDown scrolls other window (global-set-key (quote [S-prior]) (quote scroll-other-window-down)) (global-set-key (quote [S-next]) (quote scroll-other-window)) ; F6 stores a position in a file F7 brings you back to this position (global-set-key [f6] '(lambda () (interactive) (point-to-register ?1))) (global-set-key [f7] '(lambda () (interactive) (register-to-point ?1))) ;higlight the marked region (C-SPC) and use commands (like ; latex-environment) on current region. (transient-mark-mode t) ; for frank who likes to use them like on windows: (global-set-key [end] 'end-of-line) (global-set-key [home] 'beginning-of-line) (setq blink-cursor nil) ; Keinen blinkenden Cursor (setq column-number-mode t) ; Aktuelle Spalte in Mode-Line anzeigen (setq visible-bell t) ; Bei Fehlern nicht Piepsen (setq tab-width 4) ; Ein TAB sind vier Leerzeichen (setq-default indent-tabs-mode nil) ; Keine TABs einfügen, verwende Leerzeichen
" .vimrc Thomas Guettler <guettli@thomas-guettler.de> " We use vim set nocompatible " Color Syntax syntax on " Be silent set visualbell " isearch like in Emacs set incsearch " Highlight Search set hlsearch " Ignore case in search set ignorecase set tabstop=4 " ESC V (mark lines) > moves SHIFTWIDTH columns to the right " use "." to repeat this. set autoindent set shiftwidth=1 " Show modeline at the bottom " You see the current line und column number and the filename set ruler " Show "INSERT" at the bottom if you are in Insert-Mode set showmode " Show matching (), [], {} set showmatch "Like readline (bash) or emacs: "From: http://www.vim.org/htmldoc/tips.html#useful-mappings map <C-A> <Home> map <C-E> <End> imap <C-A> <Home> imap <C-E> <End> map <C-D> <Del> imap <C-D> <Del> map <C-K> dd " Indent according to filetype :filetype plugin indent on
((arglist-intro
XXXXX))
. Anschließend kann man mit M-x
customize-variable c-offsets-alist
die entsprechende
Variable konfigurieren.