blog · git · desktop · images · contact & privacy · gopher


Vim-Tipp des Jahrtausends

Habe zwar das Gefühl, dass das schon jedem bekannt sein dürfte, aber auf http://dotshare.it/ habe ich es dann doch nur bei drei Leuten gesehen. Insofern kann man ja nochmal darauf hinweisen.

if isdirectory('/tmp/vim-' . $USER) == 0
    :silent !install -dm700 /tmp/vim-$USER >/dev/null 2>&1
endif
set directory=/tmp/vim-$USER//

Bewirkt, dass Swapfiles an einer zentralen Stelle gespeichert werden. Nie wieder peinliche Commits, weil man vergessen hat, so ein Ding auszuschließen. Überhaupt weniger Gewusel beim Einsatz von VCSs, weil man eben nichts mehr von Vim ignorieren muss. Ich finde sowieso, dass ein Editor im Arbeitsverzeichnis maximal die Datei schreiben sollte, die er gerade bearbeitet. Deswegen habe ich auch „nobackup“ und „nowritebackup“ gesetzt und verwende kein persistentes Undo, trotzdem seien in dem Zusammenhang auch „backupdir“ und „undodir“ erwähnt.

Wichtig sind die zwei Slashes am Ende, die einen vollen Namen generieren:

$ ls -al /tmp/vim-void
total 57,344
drwx------  2 void users    120 Jan 11 13:10 .
drwxrwxrwt 17 root root     700 Jan 11 13:09 ..
-rw-r--r--  1 void users 16,384 Jan 11 12:52 %home%void%work%dotfiles-pub%.vimrc.swp
-rw-r--r--  1 void users 16,384 Jan 11 13:10 %home%void%work%ruby%gitodo%gitodo.swp
-rw-r--r--  1 void users 12,288 Jan 11 13:11 %home%void%www%web%www.uninformativ.de%blogdata%store%post.00193.content.swp
-rw-r--r--  1 void users 12,288 Jan 11 12:57 %home%void%www%web%www.uninformativ.de%blogdata%store%post.00193.meta.swp

Ja, in konstruierten Fällen kann es zu Namenskonflikten kommen, ja, bei einem modernen System ist „/tmp“ ein tmpfs und nach einem Neustart oder Crash weg. Wenn es notwendig ist, kann man letzteres ja beheben, indem man ein anderes Basisverzeichnis wählt. :-)