Nettigkeiten in Vim

Freitag, 26. Januar 2007

Mein immer-noch-Lieblingseditor Vim hat mich heute wieder mal positiv √ɬľberrascht.
Ich hatte eine gro√ÉŇłe Anzahl Dateien ge√ɬ∂ffnet (mehr als 30). Normalerweise werden in der Men√ɬľzeile unter dem Punkt „Puffer“ alle derzeit ge√ɬ∂ffneten Dateien angezeigt. Bei vielen Dateien w√ɬľrde aber dieses Men√ɬľ l√ɬ§nger als der Bildschirm hoch ist.
Wie wurde das in Vim gel√ɬ∂st? Wenn eine bestimmte Anzahl Dateien √ɬľberschritten wird, werden die ge√ɬ∂ffneten Dateien alphabetisch sortiert in Untermen√ɬľ-Eintr√ɬ§ge gesetzt.

Bild 1-4

TextMate vs. Vim

Donnerstag, 7. Dezember 2006

Ich habe jetzt ein paar Tage TextMate getestet. Der Editor sieht gut aus, liefert eine Menge Funktionen mit, die Syntax-Themes sind sehr leicht anpassbar(√ɬľber entsprechende Einstellungsmen√ɬľs) und er ist schnell in der Darstellung.
Was mich st√ɬ∂rt: Man muss tausend Tastenkombinationen kennen, wenn man nicht st√ɬ§ndig die Maus bewegen will. Das w√ɬ§re nicht so schlimm, wenn es eben nicht Tastenkombinationen w√ɬ§ren([Ctr]l+[$Taste], [Cmd]+[$Taste],[Cmd]+[Shift]+[$Taste],…). Damit ist man nicht viel schneller als mit der Maus, da man st√ɬ§ndig die Finger von der normalen Schreibposition nehmen muss, vor allem auf der Powerbook-Tastatur.

Vim
sieht nicht so toll aus, liefert ebenfalls eine Unmenge an Funktionen mit, die Syntax-Themes sind eher umst√ɬ§ndlich anzupassen(kein Men√ɬľ) und er ist in der neuen Version 7.0 mit eingeschalteter Zeilenhervorhebung relativ tr√ɬ§ge in der Darstellung.
Die Bedienung ist nicht intuitiv, viele Programmfunktionen sind nur √ɬľber Tastaturkommandos erreichbar. Aber: Es sind einfache Tastaturkommandos, Tastenfolgen, keine Tastenkombinationen.

Um zum Beispiel einen Absatz neu zu formatieren:

In TextMate muss man [Ctrl]+[Q] dr√ɬľcken. Auf der Powerbook-Tastatur gibt es nur eine [Ctrl]-Taste und die sitzt links unten, [Q] ist links oben. Damit ist diese Tastenkombination nicht fl√ɬľssig zu bedienen.
In Vim ist die nicht gerade leicht zu merkende Tastaturfolge [G][Q][A][P] einzugeben.
Der Unterschied ist, dass ich in Vim die Finger nicht aus der normalen Schreibposition nehmen muss und damit dieser Befehl letztendlich schneller getippt ist.

Bild 3A

Vim Kommandos – Datum und Dateiname einf√ɬľgen

Dienstag, 5. September 2006

Mein Lieblingseditor vim√ā¬†unterst√ɬľtzt so nette Funktionen wie das Einf√ɬľgen des aktuellen Datums oder des Dateinamens. Leider ist es recht schwierig, das in der Hilfe zu finden. Deshalb hier nochmal dokumentiert wie das geht. Die folgenden Zeilen kann man zum Beispiel in der Datei _vimrc (unter Windows) oder .vimrc (unter *n*x-Betriebssystemen) einf√ɬľgen.

"Dateinamen einf√ɬľgen im Einf√ɬľgemodus mit <Ctrl>-<f4>
imap <C-F4> <C-R>=expand("%:t")<cr>

"Uhrzeit im Format hh:mm einf√ɬľgen mit <Ctrl>-<F5>
imap <C-F5> <C-R>=strftime("%H:%M")<CR>

"Datum im Format yyyy/mm/dd einf√ɬľgen mit <Ctrl>-<F6>
imap <C-F6> <C-R>=strftime("%Y/%m/%d")<Cr>

Vim 7.0

Freitag, 19. Mai 2006

Mein Lieblingseditor Vim ist seit wenigen Tagen in einer neuen Version verf√ɬľgbar und bringt viele neue Funktionen mit. Unter Mac OS steht jetzt auch ein eingedeutschtes Men√ɬľ zur Verf√ɬľgung, die √ɬľblichen Mac OS Shortcuts funktionieren auch, obwohl Sie im Men√ɬľ nicht extra aufgef√ɬľhrt sind.
Hier noch ein paar tolle neue Einstellungen die Vim bietet:

"Hebt die aktuelle Zeile in der der Cursor steht farbig hervor:
:set cursorline

"hebt die aktuelle Spalte in der der Cursor steht farbig hervor:
:set cursorcolumn

"Rechtschreibpr√ɬľfung (Standard ist Englisch)
:set spell

"Die Sprache f√ɬľr die Rechtschreibpr√ɬľfung einstellen (das deutsche W√ɬ∂rterbuch
"ist leider aber noch sehr unvollständig)
:set spelllang=de_DE

Omni completion auch unter dem Namen „Intellisense“ bekannt, eine intelligente Erkennung, wie das aktuell getippte Wort lauten k√ɬ∂nnte.
Dann gibt es noch Tabs, aber die sehen arg gruselig aus, in der Mac OS Variante von Vim.
Zusammen gehörende Klammern werden nun hervorgehoben und leuchten nicht nur kurz auf wenn man auf der zugehörigen Klammer steht, wie es bisher immer war.

Intelligentes Undo:

Undo branches *new-undo-branches*
————-

Previously there was only one line of undo-redo. If, after undoing a number
of changes, a new change was made all the undone changes were lost. This
could lead to accidentally losing work.

Vim now makes an undo branch in this situation. Thus you can go back to the
text after any change, even if they were undone. So long as you do not run
into ‚undolevels‘, when undo information is freed up to limit the memory used.

To be able to navigate the undo branches each change is numbered sequentially.
The commands |g-| and |:earlier| go back in time, to older changes. The
commands |g+| and |:later| go forward in time, to newer changes.

The changes are also timestamped. Use „:earlier 10m“ to go to the text as it
was about ten minutes earlier.

The |:undolist| command can be used to get an idea of which undo branches
exist. The |:undo| command now takes an argument to directly jump to a
specific position in this list. The |changenr()| function can be used to
obtain the change number.

There is no graphical display of the tree with changes, navigation can be
quite confusing.

Und noch vieles mehr…
Keine Ahnung ob ich das alles brauche was es neues gibt, schlie√ÉŇłlich nutze ich von den bisher vorhandenen Funktionen ganz sicher nicht mehr als 5..10 %, wenn √ɬľberhaupt.