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.