]> git.rmz.io Git - dotfiles.git/blobdiff - vimrc
add paste.c-p.org
[dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 77ebad01ba5d0caaa8dc147bb2bb5566a4d572cb..94c32a8e17e5fb81ba7ba33e16f3b1295335daa1 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -107,6 +107,18 @@ set nrformats=hex               " number formats recognized for CTRL-A and CTRL-
 " whether to use a popup menu for Insert mode completion
 set completeopt=longest,menuone,preview
 
+" Indent if we're at the beginning of a line. Else, do completion.
+function! InsertTabWrapper()
+  let col = col('.') - 1
+  if !col || getline('.')[col - 1] !~ '\k'
+    return "\<Tab>"
+  else
+    return "\<C-N>"
+endif
+endfunction
+inoremap <Tab> <C-R>=InsertTabWrapper()<CR>
+inoremap <S-Tab> <C-P>
+
 " fix legacy vi inconsistency
 map Y y$
 
@@ -159,7 +171,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 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
@@ -227,4 +239,3 @@ if !exists(":DiffOrig")
   command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
                   \ | wincmd p | diffthis
 endif
-