Dienstag, 20. August 2013

svn: remove files not under version control

just a short snippet to remove files and folders in a svn repository not under version control
 svn status | grep ^\? | cut -c9- | xargs -d \\n rm -r  
(Source)

Freitag, 9. August 2013

abbrv und nop in vim

Ein wichtiger Schritt zur schnelleren Nutzung von vim ist die Vermeidung unnötiger Handbewegungen. Dies schließt zum einen die Vermeidung von überflüssiger Tipparbeit ein. Abhilfe schafft etwa die Nutzung von Abkürzungen wie
 iabbrev nrm nnoremap  
oder die Autokorrektur häufiger Tippfehler
 iabbrev adn and  
Zum anderen sollten ungewöhnliche Fingerbewegungen, wie zum Beispiel die Nutzung der Pfeil-Tasten oder der Griff zur Esc-Taste, vermieden werden. Mir hat dabei besonders die Deaktivierung letzterer geholfen:
 nnoremap <Up> <nop>  
 nnoremap <Up> <nop>  
 nnoremap <Up> <nop>  
 nnoremap <Up> <nop>  
 inoremap <Esc> <nop>  
 inoremap jk <Esc>l  

Mittwoch, 7. August 2013

Include Guards in vim

Nach zweitägigem Ausprobieren von vim stand ich vor dem Problem des Einfügens von Include Guards in C++ Header Dateien. Da der Name der Definition nicht immer eindeutig vom Dateinamen abhängt (sondern evtl auch vom einem/mehreren namespaces) verwende ich folgenden Eintrag in der .vimrc:
 command -nargs=1 IG :normal ggO#ifndef <args><CR>#define <args><Esc><C-O>Go#endif //<args><Esc><C-O>
der Befehl IG nimmt als Argument den Namen der Definition entgegen. Am Anfang und am Ende des Dokuments wird der Include Guard hinzugefügt und schließlich der Cursor zur vorigen Position zurückgesetzt. Ein Beispiel aufruf wäre etwa
 :IG NAMESPACE_FILENAME_H  
der in einer leeren Datei den Quelltext
 #ifndef NAMESPACE_FILENAME_H  
 #define NAMESPACE_FILENAME_H  

 #endif //NAMESPACE_FILENAME_H
erzeugt.