Vimium -- Der Browser für Hacker
Nachdem es schon den Vimperator für den Firefox gibt, können sich nun Nutzer von Chromium glücklich schätzen. Für sie gibt es Vimium, eine Erweiterung, die die Tastenkombination auf die vom Vim gewohnten legt:
Nachdem es schon den Vimperator für den Firefox gibt, können sich nun Nutzer von Chromium glücklich schätzen. Für sie gibt es Vimium, eine Erweiterung, die die Tastenkombination auf die vom Vim gewohnten legt:
Die LaTeX-Suite für den Editor vim war mein Einstieg in die LaTeX-Welt unter GNU/Linux. Denn ich nutz(t)e vim und da lag es nahe, den für LaTeX-Dokumente zu verwenden. Jedoch fühlte sich die Bearbeitung der Texte immer irgendwie umständlich an. Daher ging ich damals schnell auf die Suche nach Alternativen. Im folgenden will ich euch die Grundprinzipien mal näherbringen.
Wie AUCTeX sollte auch die LaTeX-Suite ein Teil des Paketmanagements sein. Im Idealfalle lässt es sich direkt nach der Installation nutzen. Bei Debian, Ubuntu und den abgeleiteten Distributionen ist eventuell Handarbeit nötig. Denn diese aktivieren das Paket nicht sofort. Der Nutzer muss auf der Kommandozeile den Befehl vim-addons install latex-suite (oder als Root vim-addons -w install latex-suite) eingeben. Damit werden diverse Symlinks in das .vim-Verzeichnis gelegt. Wer es lieber manuell hat, kann den Anweisungen auf der Download-Seite folgen. Im wesentlichen ist da nur das Paket herunterzuladen, zu entpacken und schließlich müssen die Dateien an die richtige Stelle kopiert werden.
Die LaTeX-Suite sollte nun (La)Tex-Dateien beim Öffnen
erkennen. Das ist jedoch nicht immer der Fall. Die wichtigste
Einstellung ist dabei filetype plugin on
. Sie sollte
entweder in der globalen oder zumindest in der lokalen vimrc gesetzt
sein. Damit werden dann die Dateien mit den üblichen Endungen korrekt
identifiziert und die LaTeX-Suite steht zur Verfügung. Die Autoren der
Software empfehlen weiterhin folgende Einstellungen zu setzen.
set grepprg=grep\ -nH\ $*
filetype indent on
let g:tex_flavor=’latex’
Die erste Zeile benutzt das Programm grep mit Optionen, die
den Dateinamen mit anzeigen. Diese Angabe benötigt LaTeX-Suite für die
Verarbeitung bestimmter Informationen. Die zweite Zeile bringt
automatische Einrückung des Quellcodes und erhöht so die Lesbarkeit
des Codes. Ab der Version 7 von vim werden Dateien mit der Endung
.tex
als Plain-TeX behandelt und die LaTeX-Suite steht
nicht zur Verfügung. Meist wird diese Endung auch für LaTeX-Dateien
verwendet (Wer es besser machen will, nutzt .ltx
.). Daher
empfiehlt sich diese Einstellung für alle, die die Endung
.tex
für die LaTeX-Dateien nutzen.
Beim Öffnen einer leeren Datei passiert zunächst nichts. Wenn ihr
die grafische Version des Vim benutzt, dann seht ihr drei neue
Menüeinträge. Am einfachsten ist es, nach meiner Auffassung, mit
i in den Eingabemodus zu wechseln und dort EDO
einzugeben. Dann erscheint das Grundgerüst einer LaTeX-Datei versehen
mit Markern der Art: <+..+>
. Diese könnt ihr mit
der Tastenkombination Strg+j anspringen und in die
entsprechenden Felder Werte eintragen. Gerade bei der Dokumentklasse
wäre es wünschenswert, wenn die Software eine Auswahlliste
präsentieren würde bzw. wenn es eine Art Vervollständigung gäbe. Denn
manuelle Eingabe ist eine Fehlerquelle. Im nächsten Schritt will der
Nutzer vermutlich diverse Pakete einbinden. Dazu reicht es, auf einer
leere Zeile den Paketnamen gefolgt von der Taste F5
einzugeben. LaTeX-Suite macht daraus automatisch die korrekte
Zeile. Bei grafischen Vim könnt ihr auch das Menü verwenden. Ähnlich
wie bei AUCTeX muss der Cursor zum Einfügen eines neuen Paketes an der
richtigen
Stelle stehen.
Wie der jed, kann auch die LaTeX-Suite gut mit Templates umgehen. Legt dazu einfach die entsprechende Datei in das templates-Verzeichnis. Mit dem Befehl :TTemplate name lässt sich das gewünschte Template einbinden.
Schließlich werdet ihr sicher bereits bestehende Dokumente öffnen. Hier liest die Software die Datei ein und versucht, diverse Informationen über eingebundene Pakete, selbst definierte Kommandos etc. zu extrahieren. Die Informationen stehen dann im Dokument in Form von Vervollständigung zur Verfügung.
Nachdem das Dokument geöffnet ist und der Dokumentkopf steht, kann
der eigentliche Text bearbeitet werden. Die LaTeX-Suite bietet diverse
dreibuchstabige Abkürzungen zum Einfügen von Befehlen oder
Umgebungen. Oben sahen wir bereits EDO für die
Dokumentklasse. Der erste Buchstabe zeigt an, ob ein
Environment oder eine Section verwendet wird. Die
weiteren beiden Buchstaben sind dann eine typische Abkürzung. So steht
SSE für section, SPA für part, EIT
für itemize. Standardmäßig setzen die Entwickler beim Mathesatz auf
displaymath
, eqnarray
und auch
equation
. Laut l2tabu
ergibt das falsche Abstände und sollte daher vermieden werden. Will
man daher eher gather
oder align
verwenden,
ist noch ein wenig Konfigurationsarbeit vonnöten. Die einfachste
Möglichkeit, eine der obigen Umgebungen zu nutzen, wäre
gather*+F5 einzugeben. Die Software setzt automatisch die
begin
- und end
-Tags. Das artet schnell in
vie Tippaufwand aus. Daher sollte es ebenso einen dreibuchstabigen
Code geben. Dazu könnt ihr beispielsweise :call IMAP
(’EGA’,“\\begin{gather*}\<CR><++>\<CR>\\end{gather*}<++>”,’tex’)
eingeben. Dann ergibt die Eingabe von EGA folgende
Ausgabe (Der Cursor wird an die korrekte Stelle platziert.):
\begin{gather*}
\end{gather*}<++>
Bei jedem Neustart des Vim müsste die Anweisung jedoch erneut eingegeben werden. Daher empfiehlt es sich die Einstellung permanent zu setzen:
augroup MyIMAPs
au!
au VimEnter * call IMAP (’EGA’,“\\begin{gather*}\<CR><++>\<CR>\\end{gather*}<++>”,’tex’)
augroup END
Nachdem diese Schwierigkeiten überwunden sind, bleibt der Mathesatz eine große Stolperfalle. So existieren zwar für griechische Buchstaben Abkürzungen (Beispiel: `s für σ). Aber standardmäßig gibt es nichts für Integrale, Summen, Sinus/Kosinus etc. Das heißt hier muss der Nutzer anfangs viel Aufwand in eine vernünftige Konfiguration stecken. Ich fände es wesentlich besser, wenn es für oft benutzte Mathbefehle vorkonfigurierte Einstellungen gäbe (oder mich jemand auf diese Einstellungen hinweist).
Der oben beschriebene Aufwand war für mich eines der Hauptgründe, auf LaTeX-Suite als permanenten Editor zu verzichten. Weiterhin fühlt sich die Bearbeitung von Texten irgendwie umständlicher an. Zudem gibt es einiges, was laut Dokumentation problemlos geht und bei einem Test mit Standardeinstellungen eben nicht funktioniert. Dazu gehört:
\dots
.Wahrscheinlich existiert da draußen für jedes Problem eine Lösung. Aber im Allgemeinen habe ich keine Lust, beim Mitschreiben einer Vorlesung von solche einem Bug überrascht zu werden und mich minutenlang mit der Behebung aufzuhalten. Daher habe ich damals gegen die Software entschieden und auch beim Testen für den Blogbeitrag blieb mein Eindruck von damals weitgehend bestätigt.
Durch den Vortrag zu LaTeX und die damit aufgetretenen Fragen kam ich auf die Idee, mir mal einige Editoren für LaTeX anzuschauen. In den folgenden Beiträgen will ich euch daher mal meine Erfahrungen mit den verschiedenen Programmen schildern und darstellen, wo aus meiner Sicht die Stärken und Schwächen der Einzelnen liegen. Diese Schilderung ist natürlich subjektiv. Denn im Laufe der Zeit habe ich mir eine bestimmte Benutzung angelernt und werde die Programme daher aus dieser Sichtweise beurteilen.
In der Vergangenheit nutzte ich eine Vielzahl von Programmen, um
LaTeX-Quelltexte zu erstellen. Angefangen hat es mit dem
Standard-Editor von Microsoft Windows. Danach probierte ich WinEdt
aus. Durch den Wechsel zu GNU/Linux kam ich dann mit vim, jed und dem GNU Emacs (mit dem
XEmacs konnte ich mich nie anfreunden) in Verbindung. Alle diese
Programme haben einen Modus für LaTeX-Dateien und kommen in die nähere
Betrachtung. Weiterhin bewirbt Frank sein Baby
namens Geany. Das Programm schaute ich mir also ebenfalls genauer
an. Weitere Programme, wie beispielsweise Kile oder TeXmaker, kamen bisher
noch nicht unter meine Finger. Gibt es unter meinen Lesern Nutzer
dieser oder anderer Programme? Wie sind eure Erfahrungen damit?
Worauf kommt es mir nun an? In den meisten Fällen öffne ich ein bestehendes Dokument, um dort weiterzuarbeiten oder Verbesserungen vorzunehmen. Dabei sind viele Pakete eingebunden bzw. eigene Befehle und Umgebungen definiert. Innerhalb des Editors wie auch bei einer Shell ist die Vervollständigung eine wichtige Erleichterung. Deshalb sollte der Editor meine eigenen Erweiterungen und auch die der eingebundenen Pakete kennen.
Weiterhin sollte er Wörter expandieren
können. Das heißt, ich will in einem Text nicht jedes Mal das Wort
Gruppenhomomorphismus
tippen. Stattdessen gebe ich die ersten
Zeichen des Wortes ein und nach einer Tastenkombination wird das Wort
ergänzt.
Wenn wir schon bei Vervollständigung sind, sollte der LaTeX-Editor
möglichst die installierten LaTeX-Paket kennen und mir diese bei der
Eingabe von \usepackage
anbieten. Noch besser wäre es,
wenn dem Editor Optionen zu einzelnen Paketen bekannt sind. Aber das
ist nicht immer (einfach) möglich.
Beim Öffnen eines Dokumentes gehe ich davon aus, dass der Editor
die definierten \label
s erkennt und ich diese dann
referenzieren kann, ohne mir selbst die Namen zu merken.
Wahrscheinlich gibt es noch weitere Merkmale, auf die ich implizit Wert lege. Sollten mir weitere einfallen, werde ich die hier ergänzen. Editoren müssen sich daran messen lassen. Ich werde in den Beiträgen immer etwas dazu schreibe.
Nun hätte ich gern von euch gehört, welche Editoren ihr gern nutzt, worauf ihr Wert legt etc. Bitte lasst euch bei den Kommentaren aus.
Die Kriege zwischen den Editoren-Jüngern Emacs und vim sind uralt und werden immer wieder gern ausgefochten. Bei Youtube gibt es gerade eine Episode zu bewundern. Den Anfang machte der Beitrag Vim Powa: Can Your Editor do This?. Dort wird gezeigt, wie recht schnell eine HTML-Tabelle formatiert werden kann. Die Antwort der Emacs-Jünger Emacs Power: Can your editor do THIS! folgte auf dem Fuß. Das Beispiel, welches dort gebracht wird, ist ebenfalls die Formatierung einer Tabelle. Hier wird es mit dem org-tbl-Mode gemacht. In dieser wird die Tabelle in ASCII formatiert und der Mode übernimmt den Export nach HTML. Aus meiner Sicht ist der Gewinner des Beispiels eindeutig.
Gerade ein Vim-Mapping angelegt:
map ,gm <ESC>ggfjdwxepagmx<ESC>
Das sieht wirklich nach Voodoo aus. Doch was macht es? Es wandelt die Zeile From: Jens Kubieziel <jens@kubieziel.de> in From: Jens Kubieziel <kubieziel@gmx.de> um. Wie es funktioniert? siehe unten
Continue reading "Vim-Voodoo"