Vim

Aus C3D2
Version vom 7. Februar 2006, 19:08 Uhr von Sven (Diskussion | Beiträge) (tab-completion mit vim)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Tab-Completion

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>