From fe561a9969e304f16698d6b7fe2c2520256321f1 Mon Sep 17 00:00:00 2001 From: Samir Benmendil Date: Fri, 4 Oct 2013 01:08:27 +0200 Subject: [PATCH] huge edit/organize - separate into folds - add some plugin customizations - cleanup --- vimrc | 169 ++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 92 insertions(+), 77 deletions(-) diff --git a/vimrc b/vimrc index 99d28ba..5ed5e5b 100644 --- a/vimrc +++ b/vimrc @@ -1,43 +1,87 @@ " My vimrc file. " -" Maintainer: Samir Benmendil +" Maintainer: Samir Benmendil " 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 q :nohl +" }}} + +" NERDTree {{{ +" open/close NERDTree with \e +nmap e :NERDTreeToggle +" to open files/dirs +let NERDTreeMapActivateNode='' +" 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 b :set expandtab tabstop=4 shiftwidth=4 softtabstop=4 +:nmap B :set expandtab tabstop=8 shiftwidth=8 softtabstop=4 +:nmap M :set noexpandtab tabstop=8 softtabstop=4 shiftwidth=4 +:nmap m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2 +" }}} + +" 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 u -"paste toggle +" Press `` to toggle insert and replace mode (no key on Mac keyboard) +imap `` +" }}} + +" paste toggle {{{ nmap :set paste! paste? imap :set paste! vmap :set paste!gv -set pastetoggle= +set pastetoggle= +" }}} +" mouse {{{ " In many terminal emulators the mouse works just fine, thus enable it. -"if has('mouse') -" "xterm mouse with middleclick paste -" nnoremap i -" vnoremap s -" set mouse=rnv -" "choose either one -" set ttymouse=xterm -" "set ttymouse=xterm2 -"endif +if has('mouse') + "xterm mouse with middleclick paste + nnoremap i + vnoremap s + 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= -" 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 -" Press `` to toggle insert and replace mode (no key on Mac keyboard) -imap `` - -" 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 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 [l :call NextIndent(0, 0, 0, 1) onoremap ]l :call NextIndent(0, 1, 0, 1) onoremap [L :call NextIndent(1, 0, 1, 1) onoremap ]L :call NextIndent(1, 1, 1, 1) -" end of jump indent +" end of jump indent }}} -- 2.48.1