
Mein Lieblingseditor
Zu den mächtigsten Tools gehört sicher Emacs. Es ist ein umfangreicher Texteditor der bei allen wichtigen Distributionen zum Standard gehört.
Grundfunktionen
| Grundfunktionen sind immer in Progess - ich arbeite dran ;-) |
Funktionsliste von Gregor Mitsch
Die orginal Datei ist im Web unter
www.gmdsoft.de/mitsch/kbase/kbase/
zu finden.
Ich denke es ist die Beste zu Zeit existierende Emacs Anleitung die zu finden ist.
Dateien und Buffer
------------------
C-z supend-
C-g laufenden Befehl stoppen
C-x C-f
C-x C-v
C-x C-s save-buffer
C-x s save-some-buffers (interaktives Speichern jeden geänderten Buffers)
y: ja, n: nein, .: diesen und Stopp, C-r: View-mode
M-x
C-x k ['Buffername']
C-x C-
C-x b ['Buffername'] switch-to-buffer (neuen Buffer erzeugen;
zum Buffer 'Buffername' wechseln)
C-x C-b list-buffers
C-x k ['Buffername']
C-x C-c save-buffers-
(fragt bei jedem ungespeicherten Buffer nach und beendet Emacs)
C-x i insert-
C-x u Undo
C-_ Undo
C-/ Undo
M-x
M-x
M-x
M-x revert-buffer Alle Änderungen bis zum letzten Abspeichern der Datei rückgängig machen
C-x C-q Buffer
Cursorbewegungen
----------------
rechts C-b (backward-char)
runter C-n (next-line)
hoch C-p (previous-line)
Wort vorwärts M-f (forward-word)
Wort rückwärts M-b (backward-word)
Satz vorwärts M-e (forward-sentence)
Satz rückwärts M-a (backward-sentence)
Zeilenanfang Pos1 oder C-a (beginning-of-line)
Zeilenende Ende oder C-e (end-of-line)
Bildschirmseite vorwärts PageDown oder C-v (scroll-down)
Bildschirmseite rückwärts PageUp oder M-v (scroll-up)
Dateianfang M-< (beginning-of-buffer)
Dateiende M-> (end-of-buffer)
goto-line M-g
Markieren / Kopieren / Ausschneiden / Löschen / Einfügen / Regionen / Rechtecke
-------------------------------------------------------------------------------
region = Gebiet zwischen Cursor und Marke
rectangle = rechteckiges Gebiet zwischen Cursor und Marke
Delete = Löschen
Kill = in den
Marke setzen C-Space (
mark-sexp C-M-Space
Cursor und Marke vertauschen C-x C-x (exchange-point-and-mark)
Absatz markieren M-h (mark-paragraph)
Alles markieren C-x h (mark-whole-buffer)
Seite markieren C-x C-p (mark-page), nur wenn mit Seiten gearbeitet wird
ein Zeichen löschen C-d oder Entf (delete-char)
ein Zeichen rückwärts löschen M-x backward-delete-char
Killen vom Cursor bis Wortende M-d (
Killen vom Cursor bis zum Zeilenende C-k (
C-x C-o runs `delete-blank-lines';
On blank line, delete all surrounding blank lines, leaving just one.
On isolated blank line, delete that one.
On nonblank line, delete any immediately following blank lines.
Killen vom Cursor bis Zeilenanfang M-- C-k
Bereich killen C-
Bereich kopieren M-
Bereich einfügen C-y
nach C-y vorige Einträge des
C-x r k
C-x r d delete-rectangle Rechteck löschen
C-x r y yank-rectangle letztes gekilltes Rechteck einfügen
C-x r c
C-x r o open-rectangle leeres Rechteck in die markierte Fläche einfügen
C-x r r
C-x r i
C-x r s copy-to-register
M-x view-register RET
string-rectangle C-x r t
Command: Replace rectangle contents with STRING on each line.
Fenster (Windows)
-----------------
C-x 3
C-x < scroll-left scrollt das aktuelle Fenster
C-x > scroll-right
C-x 2
C-x o other-window zum nächsten Fenster wechseln (im Uhrzeigersinn)
M-'n' C-x o wechselt n Fenster weiter
C-x 0 delete-window akuelles Fenster schließen
C-x 1 delete-other-windows alle Fenster bis auf das aktuelle schließen
M-x delete-windows-on RET 'buffername' alle Fenster mit einem bestimmten Buffer schließen
C-x ^ enlarge-window aktuelles Fenster vergrößern (vertikal)
C-u C-^ C-u = viermal
M-x shrink-window
C-x } aktuelles Fenster horizontal vergrößern
C-x { verkleinern
C-x - shrink-window-
C-x + balance-windows
M-C-v scroll-other-window scrollt im nächstliegenden Fenster
C-x 4 f
C-x 4 b switch-to-buffer-other-window einen Buffer in einem anderen Fenster anzeigen
C-x 4 0
M-x compare-windows vergleicht zwei Fenster
(Cursor steht dann beim ersten Unterschied)
M-x ediff-files Komfortabel Vergleichen
(siehe auch Menü: 'Tools->Compare (Ediff)')
C-x r
die aktuelle Fensterkonfig in einem Register
C-x j jump-to-register stellt den Zustand wieder her
C-x r SPC point-to-register C-x j to jump there.
C-x r n number-to-register
C-x r + increment-register
Frames (in X)
---------------------------------------------
C-x 5 2
C-x 5 o other-frame zum nächsten Frame gehen
C-x 5 0 delete-frame Frame löschen
C-x 5 f
C-x 5 b switch-to-buffer-other-frame einen Frame erzeugen und einen Buffer darin anzeigen
C-x 5 r
einen Frame erzeugen und eine Datei
list of frames in
Completition in X middle mouse button
left double click select word
left triple click select line
Bookmarks
---------
C-x r m bookmark-
C-x r b bookmark-jump zum Bookmark gehen
M-x bookmark-
M-x bookmark-delete Boomark löschen
M-x bookmark-save Bookmarks speichern
C-x r l bookmark-bmenu-list
C-x bookmark-insert den vollständigen Text einer Datei,
die zu einem Bookmark gehört, einfügen
C-x bookmark-
C-x bookmark-load Bookmarks aus einer Datei laden
Befehle im Bookmark-Buffer (C-x r l)
------------------------------------
d zum Löschen vormerken
x zum Löschen vorgemerkte Lesezeichen löschen
r umbenennen
s alles abspeichern
f zum Lesenzeichen gehen, auf dem der Cursor steht
m Lesezeichen markieren
v markierte Lesezeichen in mehreren Fenstern anzeigen
t Detailansicht (Pfade) an / aus
u Markierung entfernen
q Bookmark Menu verlassen
Editing Tricks and Shortcuts
----------------------------
C-t transpose-chars zwei Buchstaben vertauschen
M-t transpose-words
C-x C-t transpose-lines
transpose-sentences
transpose-paragraphs
M-x reverse-region Reverse
M-c capitalize-word Buchstabe unter Cursor groß, Rest klein
M-u upcase-word ab Cursor bis Wortende groß
M-l downcase-word ab Cursor bis Wortende klein
M-- M-u ab Cursor bis Wortanfang groß
M-- M-l ab Cursor bis Wortanfang klein
C-q quoted-insert fügt die nächste Steuersequenz als Steuerzeichen ein
C-q C-l fügt einen Seitenumbruch ein
Simple Text Formatting and Specialized Editing
----------------------------------------------
M-x edit-tab-stops :
C-i entspricht dem Tabstopp-Zeichen (ASCII 9)
M-x untabify ersetzt alle Tabs durch Leerzeichen
M-x tabify
Using Fill Prefixes (scheiße):
M-x auto-fill-mode
C-x . to
The prefix string will be inserted every
(and not
M-C-o (
Das ist ein
Beispiel.
C-q Quote-Command
C-q C-l inserts a formfeed charactar
variable: indent-tab-stops control
M-x
C-u M-x
M-x
example: record=^.*$
key=\<f\
result: sorts all lines with words beginning with an f alphabetically
example: record=\<\
key=
result: sorts all words alphabetically
Using Outline Mode
------------------
M-x outline-mode Modus aktivieren
C-c C-n page 247
C-c C-p
C-c C-f
C-c C-b
C-c C-t hide-body Hide all body lines.
C-c C-a show-all Show everything that's hidden
C-c C-d hide-subtree
C-c C-s show-subtree
M-x hide-entry nur einen Eintrag verstecken (nicht den ganzen Sub-Baum)
M-x show-entry
Remark: Hidden text parts cannot be copied to another buffer.
customize: page 251 (TODO...)
Buffer-List (Bufferliste) (C-x C-b)
------------------------------------
Space oder n zum nächsten Buffer
p zum vorherigen Buffer
d oder k zum Löschen markieren
s Buffer speichern
u Markierung des Buffers aufheben
x Markierungen ausführen
~ Buffer als unverändert markieren
%
1 Buffer auf gesamtem Bildschirm anzeigen
2 display this buffer and
f Buffer Menu durch diesen Buffer (wo der Cursor ist) ersetzen
o anderes Fenster durch diesen Buffer ersetzen
C-o anderes Fenster durch diesem Buffer ersetzen,
aber der Cursor bleibt in der Buffer List
m Buffer markieren
v mit m markierte Buffer in mehreren Fenstern anzeigen
g Update
q Buffer Menu verlassen
MR = Modified or
. - displayed
* - modified
% -
D - marked
> - marked
S - marked
-------------------------------------------------------------------------------
MR Buffer Size Mode File
-- ------ ---- ---- ----
*scratch* 191 Lisp Interaction
* *Messages* 1728 Fundamental
% *Help* 310 Help
% *Completions* 156 Completion List
-------------------------------------------------------------------------------
Suchen und Ersetzen
-------------------
C-s isearch-forward inkrementelle Suche; mehrfach drücken, um weiterzusuchen
C-r isearch-backward
C-s C-
C-s C-y start search from cursor to end of line
C-s M-y start search from
C-s C-s repeat
RET
C-g keyboard-quit cancel and go back where you started
M-p previous search string
M-n next search string
C-s RET (search-forward) nichtinkrementelle Suche
C-r RET (search-backward)
C-s RET C-
C-r RET C-
M-% query-replace (bedingtes Suchen und Erstetzen)
Space oder y Ersetzen und zum nächsten Treffer weitergehen
Del oder n Nicht ersetzen, " " "
. Ersetzen des aktuellen Treffers und verlassen
, replace and
! Den Rest ohne Rückfrage ersetzen
^ zurück zum letzten Treffer
RET oder q query-replace verlassen
C-r Rekursives Editieren starten
C-
M-C-c Rekursives Editieren verlassen und weiter mit query-replace
C-] Editieren verlassen und fertig
M-C-s RET re-search-forward Suche mit regex
M-C-r RET re-search-backward
M-C-s iserach-forward-regexp inkrementelle Suche mit regex
C-s isearch-forward zum nächsten Treffer
M-C-r isearch-backward-regexp
M-x query-replace-regexp Suchen mit regex und bedingt ersetzen
M-x replace-regexp Ersetzen ohne Rückfrage
Rekursives Editieren
--------------------
M-x recursive-edit Rekursives Editieren starten (auch mehrmals)
C-] (abort-recursive-edit) eine Rekursions-Ebene weiter nach oben gehen
M-x
Wortabkürzungen (Word Abbreviation Mode)
----------------------------------------
M-x unexpand-abbrev undo abbreviation
Trying Word Abbreivations
(1) M-x abbrev-mode Modus aktivieren
(2) Abkürzungswort schreiben
(3)
C-x a i g oder C-x a - inverse-add-global-abbrev // gobal
oder
C-x a i l inverse-add-mode-abbrev //
und Expansion eintippen.
(4) Fertig.
see .
Dauerhafte Wortabkürzungen
M-x list-abbrevs Wortabkürzungen auflisten
M-x edit-abbrevs Wortabkürzungen editieren
Deletion with C-k
Save with M-x
M-x
Abfrage beim Beenden von Emacs, falls
abbrev-Datei angelegt ist)
Dired
-----
C-x d dired Dired starten
q dired-quit Quit dired
g revert-buffer Verzeichnis nochmals von Platte einlesen
s dired-
v dired-view-
e or f dired-
d dired-flag-
# flag all auto-save files
* * dired-mark-executables mark executables
C-u * unmark executables
* / dired-mark-directories
m mit * markieren
'n' m mehrere (n) Dateien markieren
% m mit regex auswählen
% d
u Markierung aufheben
M-Del dired-unmark-all-files Alles demarkieren
x ausführen
C dired-do-copy Kopieren (nur für Dateien)
3 C Kopiert diese Datei und die nächsten zwei
D dired-do-delete Löschen
M-x dired-do-
Z dired-do-
M-x auto-
Editieren wieder komprimiert
!
!
= compare
M-= compare
! dired-do-shell-command run shell command on
C-u ! With a prefix of C-u,
a separate command
C-u C-u ! a separate command in
+ dired-create-directory erzeugt ein neues Verzeichnis
Q dired-do-query-replace in allen markierten Dateien query-replace durchführen
G dired-do-
dired-do-
dired-do-
k dired-do-
o dired-
C-o dired-omit-toggle Toggle between displaying and omitting files matching
M-} dired-next-marked-
xemacs: M-n
M-{ dired-prev-marked-
xemacs: M-p
> dired-next-dirlin move to next directory
< dired-prev-dirline
y dired-show-
xemacs: dired-why (???)
1 s
I dired-do-insert-subdir
M-C-p dired-advertised-prev-subdir
M-C-n dired-advertised-next-subdir
M-C-d dired-down-directory
M-C-u dired-up-directory
k dired-
M-x dired-build-subdir-alist
| n dired-redisplay-subdir
| m dired-mark-subdir-files
| d dired-flag-subdir-files
C-j dired-goto-subdir
$ dired-hide-subdir Hide or unhide
subdirectory and move to next directory.
M-x dired-do-igrep
M-x dired-do-igrep-
' prev marker char
\ next marker char
c dired-
( dired-
) delete marker char
useful
------------------
-a, --all
-A, --almost-all do not list implied . and ..
-G, --no-group inhibit display of group information
-h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)
-l, use a long listing format
-n, --numeric-uid-gid list numeric UIDs and GIDs instead of names
-r, --reverse reverse order
-
-S
-t
-X
View-Mode
---------
C-c oder q Quit
s start incremental search
= what line
Kalender
--------
M-x
.
g d
C-a
C-e
M-a
M-e
M-<
M->
C-f
C-b
C-n
C-p
M-}
M-{
C-x ]
C-x [
C-x < scroll-
C-x >
o
SPACE scroll-other-window
Using
i d insert-diary-entry
i
i m insert-monthly-diary-entry
i y insert-yearly-diary-entry
i c insert-cyclic-diary-entry
i a insert-anniversary-diary-entry
i b insert-block-diary-entry (mark first with C-Space)
d view-diary-entries Display diary entries
s show-all-diary-entries Displays
m mark-diary-entries
u
M-=
Ange-
--------------
...todo... (Seite 203)
Befehle im Textmodus
--------------------
M-s center-line Zeile zentrieren
M-S center-paragraph Absatz zentrieren
M-x center-region Region zentrieren
Shell-Modus
-----------
M-! shell-command einen Befehl ausführen
(Ausgabe erfolgt im *Shell Command Output* Buffer
M-| shell-command-on-region wendet einen Befehl auf eine Region an
C-u M-! puts
M-x shell Shell-Modus starten
More than one shell: M-x
M-x shell
C-d am Ende des Buffers: sendet EOF
sonst: Zeichen löschen
In/Out-Menu
M-p comint-comint-previous-input to
M-n comint-comint-next-input
C-c C-o comint-
C-y fügt angeblich das Gelöschte von C-c C-o ein (???)
C-c C-r comint-show-output repositions
C-c C-e comint-show-maximum-output goes to end of
C-c C-p comint-previous-prompt moves to
C-c C-n comint-next-prompt moves to
M-x send-invisible sendet eine Zeichenfolge,
ohne dass sie auf dem Bildschirm zu sehen ist
Writing Macros
--------------
C-x ( start
C-x ) end
C-x e call-
M-x name-
M-x insert-kbd-macro Code an Cursor-Position einfügen
// noch nicht getestet:
C-u C-x ( zuletzt definiertes Makro ausfuehren und danach Tastenkomb. hinzufuegen
M-x load-
C-x q kdb-macro-query eine Abfrage in eine Makrodef. einbauen
C-u C-x q Rekursives Editieren in eine Makrodef. einbauen
M-C c
Programmieren
-------------
M-; Kommentar erzeugen und einrücken
C-x-` Zum nächsten Fehler
M-x c-
best style: stroustrup
M-x indent-region indent selected area
Lisp-Interaction mode
---------------------
C-x C-e Zeile mit Cursor ausführen
M-( insert-parentheses
M-) move-past-close-and-reindent
M-C-\ indent-region
Misc
----
Konsolen-Modus von Emacs erzwingen:
#
Wenn die .
M-x load-
Links:
www.io.com/~dierdorf/emacsvi.html
Emacs legt beim Speichern immer eine neue Datei an.
filename~ is
filename~ is created when you first save
#filename# = auto-saved
M-x recover-
var auto-save-interval def = 300 (every 300 keystrokes an auto-save
M-x auto-save toggles auto-save on / off
Wenn ein Buffer nicht mit einer Datei assoziiert ist, dann fragt Emacs
nicht, ob
M-x
C-x C-d creates a simple directory listing
C-u C-x C-d creates a verbose directory listing
M-x
M-x display-
Session-Management (see .
C-l (recenter) Bild neu aufbauen. (Refresh)
C-x F o facemenu-
/usr/share/xemacs21/packages/lisp/dired elisp-sources
M-x whitespace-mode
w3-el-e21 Paket zum Surfen (zu langsam)
www.gentei.org/~yuuji/software/mpg123el/
Listet alle Keybindings auf:
M-x describe-prefix-bindings
C-h m describe current modes
Emacs konfigurieren
-------------------
[siehe Seite 39 - 40]
Learning GNU Emacs Buch
-------------------------
Seiten, die interssant sind:
63-64: search-
65: regex serach commands
66: Ispell
79: Abbreviations and Capialization rules
123: Shell initialization (configuration)
M-x yow dummer Spruch
"point" Cursor; Punkt zwischen Cursor und vorherigen Zeichen
F10 oder M-` Text-based menus aufrufen
Kill-Ring
---------
M-x
Menu: Edit -> Select and Paste: Einträge im Killring
Reformatting Paragraphs
-----------------------
M-q (fill-paragraph) bringt alle Zeilen im Absatz auf (ungefähr) gleich Länge
M-x fill-individual-paragraph
M-x fill-region
Absatz=Paragraph = any text that is intended or has a blank line before and after it
M-- M-q "Blocksatz"
Commands
--------
M-'n' (digit-argument) repeat
C-u (universal argument) repeat
C-u C-u 16
C-u C-u C-u 64
C-x ESC ESC redo
M-- Begin a negative numeric argument
Modes
-----
M-x overwrite-mode oder INS toggle Overwrite-Mode
M-x auto-fill-mode Automatischer Zeilenumbruch (on / off)
M-x indented-text-mode (???) ging nicht rein...
TeX / LaTeX Mode
----------------
M-x
M-x plain-
M-x
C-c {
C-c } up-list wenn der Cursor innerhalb von geschweiften Klammern steht,
dann wird der Cursor zur rechten Klammer bewegt
"blah" fügt ``blah'' ein
C-q "
C-j
M-; insert comment marker
C-c C-b
C-c C-f Datei texen
C-c C-r
C-c C-k
C-c C-l
C-c C-e
customize
.
--------------------
see ~/.
M-x edit-picture
----------------
C-o insert new line
C-c C-f move forward in current direction
C-c C-b move backward in current direction
C-c C-d deletes a character and moves
page 243: special rectangle commands in picture mode
C-c ^
C-c ` | C-c '
\ | /
\ | /
\ | /
\ | /
\ | /
\|/
C-c < -------*-------- C-c >
/|\
/ | \
/ | \
/ | \
/ | \
/ | \
C-c / | C-c \
C-c .
C-c C-c Exit picture mode
Version Control System
----------------------
C-x v v vc-next-action (see page 416)
C-x v d vc-directory zeigt alle Dateien aus einem Verzeichnis an,
die checked out sind.
C-x v = vc-
C-x v u vc-revert-buffer
C-x v ~ vc-version-other-window
C-x v l vc-print-log zeigt eine Übersicht der Versionen an
C-x v r vc-retrieve-snapshot
C-x v s vc-create-snapshot
C-x v i vc-register register a
(without checking it out)
C-x v c vc-cancel-version throw away a saved revision
Hexadezimal-Modus
-----------------
M-x hexl-mode invoke hexadecimal editor
`C-M-d'
Insert a byte with a code typed in decimal.
`C-M-o'
Insert a byte with a code typed in octal.
`C-M-x'
Insert a byte with a code typed in
`C-x ['
Move to
`C-x ]'
Move to
`M-g'
Move to an address specified in
`M-j'
Move to an address specified in decimal.
`C-c C-c'
Leave Hexl mode, going back to
before you invoked `hexl-mode'.
