]> git.rmz.io Git - dotfiles.git/commitdiff
huge edit/organize
authorSamir Benmendil <samir.benmendil@gmail.com>
Thu, 3 Oct 2013 23:08:27 +0000 (01:08 +0200)
committerSamir Benmendil <samir.benmendil@gmail.com>
Thu, 3 Oct 2013 23:08:27 +0000 (01:08 +0200)
- separate into folds
- add some plugin customizations
- cleanup

vimrc

diff --git a/vimrc b/vimrc
index 99d28bada96f6e10eae9ce705ac61cb8cf3220a1..5ed5e5bc48f306e0048ba6a5e50ca5957f6876c1 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -1,43 +1,87 @@
 " My vimrc file.
 "
-" Maintainer:   Samir Benmendil <ram-z@chakra-project.org>
+" Maintainer:   Samir Benmendil <samir.benmendil[at]gmail[dot]com>
 "
 
 if v:progname =~? "evim"
   finish
 endif
 
-" TODO
-" organize this file, never thought it'll get this big
-" TODO
-
-" pathogen.vim runtime path manipulation
-silent! call pathogen#infect()
-
 " Use Vim settings, rather than Vi settings (much better!).
 " This must be first, because it changes other options as a side effect.
 set nocompatible
 
-" allow backspacing over everything in insert mode
-set backspace=indent,eol,start
+" pathogen.vim runtime path manipulation
+silent! call pathogen#infect()
 
+" search {{{
+set incsearch
+set ignorecase
+set smartcase
+set hlsearch
+nmap <Leader>q :nohl<CR>
+" }}}
+
+" NERDTree {{{
+" open/close NERDTree with \e
+nmap <Leader>e :NERDTreeToggle<CR>
+" <space> to open files/dirs
+let NERDTreeMapActivateNode='<space>'
+" open NERDTree if no files were selected
+autocmd vimenter * if !argc() | NERDTree | endif
+" close vim if only NERDTree is open
+autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
+" }}}
+
+" airline {{{
+let g:airline#extensions#tabline#enabled = 1
+" }}}
+
+" tabbing {{{
+:nmap <Leader>b :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
+:nmap <Leader>B :set expandtab tabstop=8 shiftwidth=8 softtabstop=4<CR>
+:nmap <Leader>M :set noexpandtab tabstop=8 softtabstop=4 shiftwidth=4<CR>
+:nmap <Leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>
+" }}}
+
+" backup {{{
 if has("vms")
   set nobackup          " do not keep a backup file, use versions instead
 else
   set backup            " keep a backup file
   set backupdir=$HOME/.vim/backupdir
 endif
-set history=50          " keep 50 lines of command line history
-set ruler               " show the cursor position all the time
-set showcmd             " display incomplete commands
-set incsearch           " do incremental searching
-set number              " show some linenumbers
-" viminfo defaults but save file in .vim
-set viminfo='100,<50,s10,h,n~/.vim/viminfo
-
-" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
-" let &guioptions = substitute(&guioptions, "t", "", "g")
+" }}}
+
+" appearance {{{
+set background=dark            " Dark background, d'uh!
+set number                     " show some linenumbers
+set showmatch                  " Show matching brackets.
+set showbreak=▒▒                  " show these chars for wrapped lines
+set list listchars=tab:»·,trail:· " show these chars for tabs and trailing spaces
+" }}}
+
+" misc options {{{
+set history=500                " keep 500 lines of command line history
+set ruler                      " show the cursor position all the time
+set confirm                    " Ask what to do when closing unsaved documents
+set showcmd                    " Show (partial) command in status line.
+set autowrite                  " Automatically save before commands like :next and :make
+"set hidden                    " Hide buffers when they are abandoned
+set splitright                 " split right when using :vsp
+set scrolloff=5                " keep at least n lines above/below
+set backspace=indent,eol,start " allow backspacing over everything in insert mode
+
+set viminfo='100,<50,s10,h,n~/.vim/viminfo " viminfo defaults but save file in .vim
+" }}}
+
+" tabs {{{
+set softtabstop=4
+set shiftwidth=4
+set expandtab
+" }}}
 
+" misc bindings {{{
 " Don't use Ex mode, use Q for formatting
 map Q gq
 
@@ -45,33 +89,41 @@ map Q gq
 " so that you can undo CTRL-U after inserting a line break.
 inoremap <C-U> <C-G>u<C-U>
 
-"paste toggle
+" Press `` to toggle insert and replace mode (no <Insert> key on Mac keyboard)
+imap `` <Insert>
+" }}}
+
+" paste toggle {{{
 nmap <F11> :set paste! paste?<CR>
 imap <F11> <C-o>:set paste!<CR>
 vmap <F11> <Esc>:set paste!<CR>gv
-set pastetoggle=<F11> 
+set pastetoggle=<F11>
+" }}}
 
+" mouse {{{
 " In many terminal emulators the mouse works just fine, thus enable it.
-"if has('mouse')
-"  "xterm mouse with middleclick paste
-"  nnoremap <MiddleMouse> i<MiddleMouse>
-"  vnoremap <MiddleMouse> s<MiddleMouse>
-"  set mouse=rnv
-"  "choose either one
-"  set ttymouse=xterm
-"  "set ttymouse=xterm2
-"endif
+if has('mouse')
+  "xterm mouse with middleclick paste
+  nnoremap <MiddleMouse> i<MiddleMouse>
+  vnoremap <MiddleMouse> s<MiddleMouse>
+  set mouse=rnv
+  "choose either one
+  set ttymouse=xterm
+  "set ttymouse=xterm2
+endif
+" }}}
 
+" syntax {{{
 " Switch syntax highlighting on, when the terminal has colors
 " Also switch on highlighting the last used search pattern.
 if &t_Co > 2 || has("gui_running")
   syntax on
-  set hlsearch
 endif
+" }}}
 
+" autocmd {{{
 " Only do this part when compiled with support for autocommands.
 if has("autocmd")
-
   " Enable file type detection.
   " Use the default filetype settings, so that mail gets 'tw' set to 72,
   " 'cindent' is on in C files, etc.
@@ -98,13 +150,11 @@ if has("autocmd")
     \ endif
 
   augroup END
-
 else
-
   set autoindent                " always set autoindenting on
+endif " has("autocmd") }}}
 
-endif " has("autocmd")
-
+" DiffOrig {{{
 " Convenient command to see the difference between the current buffer and the
 " file it was loaded from, thus the changes you made.
 " Only define it when not defined already.
@@ -112,45 +162,9 @@ if !exists(":DiffOrig")
   command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
                   \ | wincmd p | diffthis
 endif
+" }}}
 
-" Ask what to do when closing unsaved documents
-set confirm
-
-" If using a dark background within the editing area and syntax highlighting
-" turn on this option as well
-set background=dark
-
-" The following are commented out as they cause vim to behave a lot
-" differently from regular Vi. They are highly recommended though.
-set showcmd             " Show (partial) command in status line.
-set showmatch           " Show matching brackets.
-set ignorecase          " Do case insensitive matching
-set smartcase           " Do smart case matching
-set incsearch           " Incremental search
-set autowrite           " Automatically save before commands like :next and :make
-"set hidden             " Hide buffers when they are abandoned
-"set mouse=a            " Enable mouse usage (all modes)
-
-" expand tabs
-set softtabstop=4
-set shiftwidth=4
-set expandtab
-
-set showbreak=▒▒
-" show these chars for tabs and trailing spaces
-set list listchars=tab:»·,trail:·
-
-set pastetoggle=<F11>
-" split right when using :vsp
-set splitright
-
-set scrolloff=3             " keep at least 3 lines above/below
-" Press i to enter insert mode, and ii to exit.
-imap ii <Esc>
-" Press `` to toggle insert and replace mode (no <Insert> key on Mac keyboard)
-imap `` <Insert> 
-
-" fold between {{{ }}}
+" fold {{{
 set foldmethod=marker
 set foldlevelstart=99
 " space will toggle current fold in normal mode, if not in a fold, normal
@@ -160,7 +174,9 @@ vnoremap <Space> zf
 " save and restore folds
 autocmd BufWinLeave *.* mkview
 autocmd BufWinEnter *.* silent loadview
+" }}}
 
+function! NextIndent(exclusive, fwd, lowerlevel, skipblanks) " {{{
 " Jump to the next or previous line that has the same level or a lower
 " level of indentation than the current line.
 "
@@ -172,7 +188,6 @@ autocmd BufWinEnter *.* silent loadview
 " false: Go to line with the same indentation level
 " skipblanks (bool): true: Skip blank lines
 " false: Don't skip blank lines
-function! NextIndent(exclusive, fwd, lowerlevel, skipblanks)
   let line = line('.')
   let column = col('.')
   let lastline = line('$')
@@ -207,4 +222,4 @@ onoremap <silent> [l :call NextIndent(0, 0, 0, 1)<CR>
 onoremap <silent> ]l :call NextIndent(0, 1, 0, 1)<CR>
 onoremap <silent> [L :call NextIndent(1, 0, 1, 1)<CR>
 onoremap <silent> ]L :call NextIndent(1, 1, 1, 1)<CR>
-" end of jump indent
+" end of jump indent }}}