""" OPTIONS set nocompatible set backspace=indent,eol,start set number set history=1000 set hlsearch incsearch set encoding=utf-8 set laststatus=2 set tabstop=4 shiftwidth=4 smarttab expandtab softtabstop=4 autoindent set textwidth=72 set ignorecase smartcase set wildmenu set wildmode=list:longest set scrolloff=3 set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp,$TMP,$TEMP set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp,$TMP,$TEMP set title set visualbell set sessionoptions=curdir,buffers,folds,help,resize,slash,tabpages,winsize set showcmd set ruler set splitbelow splitright set guioptions-=m set guioptions-=T syntax on filetype on filetype plugin on filetype indent on let mapleader="," """ PLUGINS " for plugins: winmanager, taglist " let g:winManagerWindowLayout='FileExplorer' " let g:winManagerWindowLayout='FileExplorer|TagList' " let g:winManagerWindowLayout='FileExplorer|BufExplorer' " nmap w :WMToggle " for plugin: mru nmap m :MRU let MRU_Max_Entries=100 let MRU_Add_Menu=1 " for plugin: minibufexpl " let g:miniBufExplMapWindowNavVim=1 " let g:miniBufExplMapWindowNavArrows=1 " let g:miniBufExplMapCTabSwitchBufs=1 " let g:miniBufExplModSelTarget=1 " nmap e mbe " for plugin: bufexplorer " nmap b :BufExplorerVerticalSplit:vertical resize 50 " for plugin: netrw let g:netrw_alto = 1 let g:netrw_altv = 1 " for plugin: Conque nmap i :ConqueTerm " for plugin: FuzzyFinder nmap b :FufBuffer nmap f :FufFile nmap d :FufDir nmap t :FufTag nmap l :FufLine """ GENERAL KEYS nmap F gqapk$ vmap F gq imap f gqapkA nmap c :close nmap x :50vsplit %:p:h nmap X :20split %:p:h nmap r :redraw! nmap v :vnew nmap V :vsplit nmap n :new nmap N :split nmap = = nmap , gT nmap . gt nmap 1 :cprev nmap ! :lprev nmap 2 :cnext nmap @ :lnext nmap o :cwindow nmap O :lwindow nmap 3 :tabe nmap w :tabc nmap D :diffthis nmap u :diffupdate imap omap vmap " evil trick to 'normalize" the path of current file " nmap a :cd `pwd` " these are not necessary if minibufexpl is enabled and g:miniBufExplMapWindowNavVim=1 nmap h nmap j nmap k nmap l " cscope " symbol nmap S :cs find s =expand("") " definition nmap G :cs find g =expand("") " callees nmap E :cs find d =expand("") " callers nmap C :cs find c =expand("") " text string nmap T :cs find t " egrep pattern " nmap CE :cs find e " f file " i files #including this file " reset nmap R :cs reset nnoremap 3 nnoremap 3 if has("gui_running") nmap :update imap :update endif " p means paste clipboard in normal, insert and command mode " y means copy the selection to clipboard in visual mode nmap p :set paste"+p:set nopaste nmap P :set paste"+P:set nopaste imap p + cmap p + vmap y "+y nmap % :let @+=@% " swap ' and ` since we want to map ' to the more accurate one nnoremap ' ` nnoremap ` ' map if has("gui_running") && has("gui_win32") language en source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim endif """ AUTO COMMANDS " Python au BufEnter *.py nmap 4 :!python % au BufEnter *.py set textwidth=0 au BufLeave *.py set textwidth=72 " Tex au BufEnter *.tex nmap 4 :w:!texi2pdf % au BufEnter *.tex nmap 7 :!open %pdf au BufEnter *.tex nmap 8 o\begin{verbatim}\end{verbatim}O au BufEnter *.tex nmap 9 o\begin{itemize}\end{itemize}O \item au BufEnter *.tex nmap 0 o\begin{enumerate}\end{enumerate}O \item au BufEnter *.tex set textwidth=0 au BufLeave *.tex set textwidth=72 " C " make! means don't jump to the first error after building au BufEnter *.[ch] nmap 4 :make! au BufEnter *.[ch] set autowrite textwidth=0 au BufLeave *.[ch] set noautowrite textwidth=72 au BufEnter *.[ch] set tabstop=2 softtabstop=2 shiftwidth=2 textwidth=0 au BufLeave *.[ch] set tabstop=4 softtabstop=4 shiftwidth=4 textwidth=72 " Makefile au BufEnter Makefile nmap 4 :make! au BufEnter Makefile set textwidth=0 au BufLeave Makefile set textwidth=72 " Prolog au BufEnter *.pl let g:filetype_pl="prolog" au BufEnter *.pl nmap 4 :w:!swipl -s % au BufEnter *.pl set textwidth=0 au BufLeave *.pl set textwidth=72 " Scheme au BufEnter *.scm nmap 4 :w:!guile -l % au BufEnter *.scm set textwidth=0 au BufLeave *.scm set textwidth=72 " Haskell au BufEnter *.hs nmap 4 :w:!ghci % "au BufEnter *.hs nmap 5 :w:!runhugs % au BufEnter *.hs set tabstop=2 softtabstop=2 shiftwidth=2 textwidth=0 au BufLeave *.hs set tabstop=4 softtabstop=4 shiftwidth=4 textwidth=72 au BufEnter *.lhs nmap 4 :w:!ghci % au BufEnter *.lhs set tabstop=2 softtabstop=2 shiftwidth=2 textwidth=0 au BufLeave *.lhs set tabstop=4 softtabstop=4 shiftwidth=4 textwidth=72 " Vim au BufEnter .vimrc nmap 4 :source % au BufEnter .vimrc nmap 7 :vnew:r ! ssh panxingz@panxingzhi.net "cat www/pro/vim/.vimrc":diffthisw:diffthis au BufEnter .vimrc nmap 8 :w ! ssh panxingz@panxingzhi.net "cat > www/pro/vim/.vimrc" au BufEnter .vimrc set textwidth=0 au BufLeave .vimrc set textwidth=72 au BufEnter adhoc.vim nmap 4 :source % au BufEnter adhoc.vim set textwidth=0 au BufLeave adhoc.vim set textwidth=72 """ AD HOC if filereadable(expand('~') . '/adhoc.vim') source ~/adhoc.vim endif