]> git.rmz.io Git - dotfiles.git/commitdiff
smart tab (completion + indent)
authorSamir Benmendil <samir.benmendil@gmail.com>
Wed, 16 Oct 2013 17:28:33 +0000 (19:28 +0200)
committerSamir Benmendil <samir.benmendil@gmail.com>
Wed, 16 Oct 2013 17:28:33 +0000 (19:28 +0200)
vimrc

diff --git a/vimrc b/vimrc
index 77ebad01ba5d0caaa8dc147bb2bb5566a4d572cb..ceab90ef251eca9051a49c4d31686b6b6f250eed 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -159,7 +159,7 @@ set writebackup                 " write a backup file before overwriting a file
 set backup                      " keep a backup after owerwriting a file
 set backupdir=$HOME/.vim/backupdir
 
 set backup                      " keep a backup after owerwriting a file
 set backupdir=$HOME/.vim/backupdir
 
-set undofile    " persistent undo history
+set undofile                    " persistent undo history
 set undodir=$HOME/.vim/backupdir
 
 set autowrite                   " automatically write a file when leaving a modified buffer
 set undodir=$HOME/.vim/backupdir
 
 set autowrite                   " automatically write a file when leaving a modified buffer
@@ -228,3 +228,14 @@ if !exists(":DiffOrig")
                   \ | wincmd p | diffthis
 endif
 
                   \ | wincmd p | diffthis
 endif
 
+" Indent if we're at the beginning of a line. Else, do completion0.
+function! InsertTabWrapper()
+  let col = col('.') - 1
+  if !col || getline('.')[col - 1] !~ '\k'
+    return "\<tab>"
+  else
+    return "\<c-p>"
+endif
+endfunction
+inoremap <tab> <c-r>=InsertTabWrapper()<cr>
+inoremap <s-tab> <c-n>