Vim
Zur Navigation springen
Zur Suche springen
Automatically close ( [ { and "
imap ( ()<Left>
imap [ []<Left>
imap { {}<Left>
imap " <C-V>"<C-V>"<Left>
% springt auf die öffnende oder schließende Klammer.
Tab-Completion
unter Gentoo gibts das auch als ebuild unter app-vim/supertab
function InsertTabWrapper(direction) " automagically decide what to do with <tab>
let col = col('.') -1 " <s-tab> in insert mode
if !col
return "\<tab>" " insert Tab at the beginning of the line
elseif a:direction < 0
return "\<c-p>" " insert Backward-Completion
elseif getline('.')[col - 1] == '<space>'
return "\<BS>\<TAB>" " replace <space><tab> with <tab>
elseif getline('.')[col - 1] !~ '\k'
return "\<tab>" " insert Tab if preceding character is not a keyword character
else
return "\<c-n>" " insert Forward-Completion
endfunction
inoremap <tab> <c-r>=InsertTabWrapper(1)<cr>
inoremap <s-tab> <c-r>=InsertTabWrapper(-1)<cr>
Filetype für Extension registrieren
Setzt für alle Dateien mit der Endung rxml den Filetype auf Ruby.
autocmd BufRead,BufNewFile *.rxml set filetype=ruby
Whitespace
Lange Zeilen und Whitespaces farbig hervorheben: Sofern textwidth einen Wert größer 0 hat, wird mit diesen Zeilen alles jenseits dieser Grenze, sowie Whitespaces am Zeilenende als Error (weiß auf rot) markiert.
au BufEnter *
\ if &textwidth > 0 |
\ exec 'match Error /\%>' . &textwidth . 'v.\+\|\s\+$/' |
\ endif
Wenn man lediglich den WhiteSpace am Ende der Zeilen hervorheben moechte, dann reichen auch diese beiden Zeilen:
:set list listchars=tab:>o :hi SpecialKey ctermbg=blue ctermfg=white
Hilfe dazu:
:help listchars :help hl-SpecialKey
XML-Files
Zum bearbeiten von XML-Files gibt es ein Plugin mit dem der Vim im Insert-Mode automatisch die Tags schließt. XML-Plugin bei vim.org.
EOLs
Carriage Returns aus DOS/Windows Dateien entfernen:
:1,$s/{Ctrl+V}{Ctrl+M}//{Enter}
einfacher:
:set ff=unix :w
Links
- Eine Übersicht über die gängigsten Befehle
- Die Vim-Dokumentation im HTML-Format (2010-09-04 fuer vim-7.2)