Main /

Gnu Emacs

Gnu Emacs

GNU Emacs

Der Editor, an dem man unter Linux irgendwie nicht vorbei kommt.

Warum Emacs? Effective Emacs en Darum! daumen hoch!

Die wichtigsten Tastenkommandos

Dateikommandos
Emacs VerlassenC-x C-c
File ladenC-x C-f
File speichernC-x C-s
File speichern unterC-x C-w
Blockoperationen
Markierung startenC-space
CopyM-w
CutC-w
PasteC-y
Windows und Buffer
Windows wechselnC-x o
akt. Window vergrößernC-x 1
akt. Window schließenC-x 0
einen weiteren Buffer sichtbar machen (vertikal trennen)C-x 2
einen weiteren Buffer sichtbar machen (horizontal trennen)C-x 3
Buffer wechselnC-x b [Buffername]
Sonstiges
Suchen inkrementellC-s
UndoC-_
Goto ZeileC-n
KompilierenF9
Nach Kompilierung zu Fehler springenF8

...to be continued...

viele weitere Informationen zu emacs gibt es im Emacs Wiki

Probleme mit Emacs und dem neuen Xorg 7

Ich Lars hatte bis eben statt normaler Fontansicht im emacs nur Klötzchen gesehen. Ich habe viele Dinge im Gentoo-Forum gelesen, aber nichts half. Jetzt habe ich mal alle (set-default-font "...") aus meiner .emacs entfernt und voila, geht wieder. Stirn-abwisch Wenn einem der aktuelle Font nicht passt, mit xfontsel einen neuen suchen und in die .emacs kopieren, ein (set-default-font " davor und ein ") dahinter, emacs neu starten und der neue Font ist zu sehen.

Inhaltformatierungen

Global aus der .emacs

Emacs ist in der Lage sehr viele Dateien anhand der Dateiextension zu erkennen und dann gewisse Darstellung wie besondere Farbe für Source Code einzustellen oder Einrückungen automatisch vorzunehmen. So sind cpp, cc, c++ Extensions als C++ Source Code zu verstehen und der Emacs stellt den cpp-mode ein.

Die meisten /etc Konfigurationsdateien haben aber keine Endungen, trotzdem wäre es nett, wenn diese Dateien als z.B. Shell-Skripts erkannt werden, dann sind Kommentare in einer anderen Farbe gekennzeichnet. Dazu öffnet man die .emacs Datei, sucht dort nach auto-mode-alist und fügt dort als erstes die Zeile mit dem "^/etc" ... ein, sollte auto-mode-alist nicht vorhanden sein, gleich den ganzen Block.

 (setq auto-mode-alist
   (append '(
      ("^/etc"       . shell-script-mode)
    )))

Jetzt werden sämtliche Dateien aus /etc als Shell Skripte interpretiert.

Am Anfang der Dateien

Es gibt auch die Möglichkeit, dem Emacs in einer Datei zu sagen, welcher Art eine Datei ist, dazu schreibt man als Kommentar in die erste Zeile ein -*- mode -*- wobei mode dann shell-script, cpp-mode, ... ist. Beim Öffnen wird die erste Zeile vom Emacs interpretiert und versucht den mode zwischen -*- zu interpretieren.

Ausnahme: Eine Datei begingt mit einem Shebang #!/executable dann wird versucht den mode aus der zweiten Zeile zu interpretieren.

Am Ende

Man kann dem Emacs beibringen sich auf verschiedene Dateien richtig einzustellen, dazu braucht man in einer solchen Datei am Ende nur folgendes einzufügen:

 // The following sets variables for GNU EMACS
 // Local Variables:
 // tab-width:4
 // End:

Hier wird die tab-width Variable auf 4 gesetzt, default ist der tab-width im Emacs nämlich 8.

Mal davon abgesehen, das Tabs in Source Dateien absolut nichts verloren haben, da jeder Editor diese anders interpretiert und damit das Resultat immer nur Falsch sein kann.

Nachteile der beiden letztgenannten Möglichkeiten:

  • Sie sind nur vom Emacs verständlich.
  • Sie blähen den Code auf.
  • Unbedarfte Entwickler sehen sie gerne als Fehler an und löschen solchen unsinnigen Kommentare.

Es gibt leider keine Standards für solche Erweiterungen.

Lineendings

Der Emacs versteht (fast) jedes Lineending richtig, aber manchmal möchte man dieses ändern, da werden dann Tools wie recode herangezogen, dabei kann das der Emacs auch von sich aus.

 M-x set-buffer-file-coding-system RET unix

Schon hat die aktuelle Datei das Ending von Unix. Man braucht die Datei nur noch abzuspeichern.

Doppelte Lines entfernen

Wer kennt das nicht, da arbeitet man mit Listen und will jetzt mal eben schnell alle Zeilen entfernen, die doppelt vorkommen. Eigentlich keine große Sache

 # sort file | uniq

Doch dazu muss die Datei erst abgespeichert und danach wieder geladen werden.

Damit geht es dann direkt im Editor.

Siehe auch

Frische Änderungen | Menü editieren
zuletzt geändert am 29.07.2015 10:44 Uhr von Lars
Edit Page | Page History