""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " This vimrc is based on the vimrc by Amix: " http://amix.dk/vim/vimrc.html " You can find the latest version on: " http://github.com/easwy/share/tree/master/vim/vimrc/ " " Maintainer: Easwy Yang " Last Change: Mon Oct 25 16:04:31 CST 2010 " Homepage: http://easwy.com/ " Version: 0.2 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " General """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Get out of VI's compatible mode.. set nocompatible " Platform function! MySys() if has("win32") return "windows" else return "linux" endif endfunction set tags=tags; "Sets how many lines of history VIM har to remember set history=500 " Always use English messages & menu "language zh_CN.UTF-8 "language messages en_US.ISO_8859-1 "set langmenu=en_US.ISO_8859-1 " Chinese " multi-encoding setting if has("multi_byte") "set bomb set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,sjis,euc-kr,ucs-2le,latin1 " CJK environment detection and corresponding setting if v:lang =~ "^zh_CN" " Use cp936 to support GBK, euc-cn == gb2312 set encoding=chinese set termencoding=chinese set fileencoding=chinese elseif v:lang =~ "^zh_TW" " cp950, big5 or euc-tw " Are they equal to each other? set encoding=* set termencoding=* set fileencoding=* "elseif v:lang =~ "^ko" " " Copied from someone's dotfile, untested " set encoding=euc-kr " set termencoding=euc-kr " set fileencoding=euc-kr "elseif v:lang =~ "^ja_JP" " " Copied from someone's dotfile, untested " set encoding=euc-jp " set termencoding=euc-jp " set fileencoding=euc-jp endif " Detect UTF-8 locale, and replace CJK setting if needed if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set encoding=utf-8 set termencoding=utf-8 set fileencoding=utf-8 endif endif "if MySys() == "windows" "set encoding=utf-8 "set langmenu=zh_CN.UTF-8 "language message zh_CN.UTF-8 "set fileencodings=ucs-bom,utf-8,gb18030,cp936,big5,euc-jp,euc-kr,latin1 "endif "Enable filetype plugin filetype plugin on filetype indent on set ff=unix "Set to auto read when a file is changed from the outside set autoread "Have the mouse enabled all the time: "set mouse=a set shortmess=atI "Set mapleader let mapleader = "," let g:mapleader = "," "Fast saving nmap <silent> <leader>ww :w<cr> nmap <silent> <leader>wf :w!<cr> "Fast quiting nmap <silent> <leader>qw :wq<cr> nmap <silent> <leader>qf :q!<cr> nmap <silent> <leader>qq :q<cr> nmap <silent> <leader>qa :qa<cr> "Fast remove highlight search nmap <silent> <leader><cr> :noh<cr> "Fast redraw nmap <silent> <leader>rr :redraw!<cr> " For Thinkpad imap <F1> <ESC> nmap <F1> <ESC> cmap <F1> <ESC> vmap <F1> <ESC> " Switch to buffer according to file name function! SwitchToBuf(filename) "let fullfn = substitute(a:filename, "^\\~/", $HOME . "/", "") " find in current tab let bufwinnr = bufwinnr(a:filename) if bufwinnr != -1 exec bufwinnr . "wincmd w" return else " find in each tab tabfirst let tab = 1 while tab <= tabpagenr("$") let bufwinnr = bufwinnr(a:filename) if bufwinnr != -1 exec "normal " . tab . "gt" exec bufwinnr . "wincmd w" return endif tabnext let tab = tab + 1 endwhile " not exist, new tab exec "tabnew " . a:filename endif endfunction "Fast edit vimrc if MySys() == 'linux' "Fast reloading of the .vimrc map <silent> <leader>ss :source ~/.vimrc<cr> "Fast editing of .vimrc map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr> "When .vimrc is edited, reload it "autocmd! bufwritepost .vimrc source ~/.vimrc elseif MySys() == 'windows' " Set helplang set helplang=cn "Fast reloading of the _vimrc map <silent> <leader>ss :source ~/_vimrc<cr> "Fast editing of _vimrc map <silent> <leader>ee :call SwitchToBuf("~/_vimrc")<cr> "When _vimrc is edited, reload it autocmd! bufwritepost _vimrc source ~/_vimrc endif " For windows version if MySys() == 'windows' source $VIMRUNTIME/mswin.vim behave mswin set diffexpr=MyDiff() function! MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif let arg1 = v:fname_in if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif let arg2 = v:fname_new if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif let arg3 = v:fname_out if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif let eq = '' if $VIMRUNTIME =~ ' ' if &sh =~ '\<cmd' let cmd = '""' . $VIMRUNTIME . '\diff"' let eq = '"' else let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' endif else let cmd = $VIMRUNTIME . '\diff' endif silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq endfunction endif """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Colors and Fonts """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Set font if MySys() == "linux" if has("gui_gtk2") set gfn=Courier\ New\ 10,Courier\ 10,Luxi\ Mono\ 10, \DejaVu\ Sans\ Mono\ 10,Bitstream\ Vera\ Sans\ Mono\ 10, \SimSun\ 10,WenQuanYi\ Micro\ Hei\ Mono\ 10 elseif has("x11") set gfn=*-*-medium-r-normal--10-*-*-*-*-m-*-* endif endif " Avoid clearing hilight definition in plugins if !exists("g:vimrc_loaded") "Enable syntax hl syntax enable " color scheme if has("gui_running") set guioptions-=T set guioptions-=m set guioptions-=L set guioptions-=r colorscheme darkblue_my "hi normal guibg=#294d4a set cursorline else " colorscheme desert_my endif " has endif " exists(...) "Some nice mapping to switch syntax (useful if one mixes different languages in one file) map <leader>1 :set syntax=c<cr> map <leader>2 :set syntax=xhtml<cr> map <leader>3 :set syntax=python<cr> map <leader>4 :set ft=javascript<cr> map <leader>$ :syntax sync fromstart<cr> autocmd BufEnter * :syntax sync fromstart " CTRL-C "vnoremap <C-C> "+y " Use CTRL-Q to do what CTRL-V used to do "noremap <C-Q> <C-V> " CTRL-V "map <C-V> "+gP "cmap <C-V> <C-R>+ "exe 'inoremap <script> <C-V>' paste#paste_cmd['i'] "exe 'vnoremap <script> <C-V>' paste#paste_cmd['v'] "Highlight current "if has("gui_running") " set cursorline " hi cursorline guibg=#333333 " hi CursorColumn guibg=#333333 "endif """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Fileformats """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Favorite filetypes set ffs=unix,dos nmap <leader>fd :se ff=dos<cr> nmap <leader>fu :se ff=unix<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " VIM userinterface """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Set 7 lines to the curors - when moving vertical.. "set so=7 " Maximum window when GUI running if has("gui_running") "set lines=9999 "set columns=9999 endif "Turn on WiLd menu set wildmenu "Always show current position set ruler "The commandbar is 2 high set cmdheight=1 "Show line number set nu "Do not redraw, when running macros.. lazyredraw set lz "Change buffer - without saving "set hid "Set backspace set backspace=eol,start,indent "Bbackspace and cursor keys wrap to set whichwrap+=<,>,h,l "set whichwrap+=<,> "Ignore case when searching set ignorecase "Include search set incsearch "Highlight search things set hlsearch "Set magic on set magic "No sound on errors. set noerrorbells set novb t_vb= "show matching bracets "set showmatch "How many tenths of a second to blink "set mat=2 """""""""""""""""""""""""""""" " Statusline """""""""""""""""""""""""""""" "Always hide the statusline set laststatus=2 function! CurDir() let curdir = substitute(getcwd(), '/home/mhr/', "~/", "g") return curdir endfunction "Format the statusline "set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%c """""""""""""""""""""""""""""" " Visual """""""""""""""""""""""""""""" " From an idea by Michael Naumann function! VisualSearch(direction) range let l:saved_reg = @" execute "normal! vgvy" let l:pattern = escape(@", '\\/.*$^~[]') let l:pattern = substitute(l:pattern, "\n$", "", "") if a:direction == 'b' execute "normal ?" . l:pattern . "^M" else execute "normal /" . l:pattern . "^M" endif let @/ = l:pattern let @" = l:saved_reg endfunction "Basically you press * or # to search for the current selection !! Really useful vnoremap <silent> * :call VisualSearch('f')<CR> vnoremap <silent> # :call VisualSearch('b')<CR> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Moving around and tabs """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Map space to / and c-space to ? "map <space> / "map <c-space> ? "Smart way to move btw. windows nmap <C-j> <C-W>j nmap <C-k> <C-W>k nmap <C-h> <C-W>h nmap <C-l> <C-W>l "Actually, the tab does not switch buffers, but my arrows "Bclose function can be found in "Buffer related" section map <leader>bd :Bclose<cr> "map <down> <leader>bd "Use the arrows to something usefull "map <right> :bn<cr> "map <left> :bp<cr> "Tab configuration map <leader>tn :tabnew map <leader>te :tabedit map <leader>tc :tabclose<cr> map <leader>tm :tabmove try set switchbuf=useopen set stal=1 catch endtry "Moving fast to front, back and 2 sides ;) imap <m-$> <esc>$a imap <m-0> <esc>0i "Switch to current dir map <silent> <leader>cd :cd %:p:h<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Parenthesis/bracket expanding """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "vnoremap @1 <esc>`>a)<esc>`<i(<esc> "") "vnoremap @2 <esc>`>a]<esc>`<i[<esc> "vnoremap @3 <esc>`>a}<esc>`<i{<esc> "vnoremap @$ <esc>`>a"<esc>`<i"<esc> "vnoremap @q <esc>`>a'<esc>`<i'<esc> "vnoremap @w <esc>`>a"<esc>`<i"<esc> "Map auto complete of (, ", ', [ "inoremap @1 ()<esc>:let leavechar=")"<cr>i "inoremap @2 []<esc>:let leavechar="]"<cr>i "inoremap @3 {}<esc>:let leavechar="}"<cr>i "inoremap @4 {<esc>o}<esc>:let leavechar="}"<cr>O "inoremap @q ''<esc>:let leavechar="'"<cr>i "inoremap @w ""<esc>:let leavechar='"'<cr>i "au BufNewFile,BufRead *.\(vim\)\@! inoremap " ""<esc>:let leavechar='"'<cr>i "au BufNewFile,BufRead *.\(txt\)\@! inoremap ' ''<esc>:let leavechar="'"<cr>i "imap <m-l> <esc>:exec "normal f" . leavechar<cr>a "imap <d-l> <esc>:exec "normal f" . leavechar<cr>a """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " General Abbrevs """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "My information "iab xdates <c-r>=strftime("%b %d, %Y")<cr> "iab xdate <c-r>=strftime("%a %b %d %H:%M:%S %Z %Y")<cr> "iab xname Easwy Yang """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Editing mappings etc. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" func! DeleteTrailingWS() exe "normal mz" %s/\s\+$//ge nohl exe "normal `z" endfunc " do not automaticlly remove trailing whitespace "autocmd BufWrite *.[ch] :call DeleteTrailingWS() "autocmd BufWrite *.cc :call DeleteTrailingWS() "autocmd BufWrite *.txt :call DeleteTrailingWS() nmap <silent> <leader>ws :call DeleteTrailingWS()<cr>:w<cr> "nmap <silent> <leader>ws! :call DeleteTrailingWS()<cr>:w!<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Command-line config """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Bash like cnoremap <C-A> <Home> cnoremap <C-E> <End> cnoremap <C-K> <C-U> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Buffer realted """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Open a dummy buffer for paste map <leader>es :tabnew<cr>:setl buftype=nofile<cr> if MySys() == "linux" map <leader>ec :tabnew ~/tmp/scratch.txt<cr> else map <leader>ec :tabnew $TEMP/scratch.txt<cr> endif "Restore cursor to file position in previous editing session set viminfo='10,\"100,:20,n~/.viminfo au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif " Don't close window, when deleting a buffer command! Bclose call <SID>BufcloseCloseIt() function! <SID>BufcloseCloseIt() let l:currentBufNum = bufnr("%") let l:alternateBufNum = bufnr("#") if buflisted(l:alternateBufNum) buffer # else bnext endif if bufnr("%") == l:currentBufNum new endif if buflisted(l:currentBufNum) execute("bdelete ".l:currentBufNum) endif endfunction """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Session options """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set sessionoptions-=curdir set sessionoptions+=sesdir """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Files and backups """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Turn backup off set nobackup set nowb set noswapfile set bufhidden=hide """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Folding """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Enable folding, I find it very useful "set fen "set fdl=0 nmap <silent> <leader>zo zO vmap <silent> <leader>zo zO """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Text options """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set tabstop=4 set expandtab set shiftwidth=4 "map <leader>t2 :set shiftwidth=2<cr> "map <leader>t4 :set shiftwidth=4<cr> "au FileType html,python,vim,javascript,xml setl shiftwidth=4 "au FileType html,python,vim,javascript setl tabstop=4 au FileType java,c,cpp setl shiftwidth=4 "au FileType java setl tabstop=4 "au FileType txt setl lbr "au FileType txt setl tw=80 "set smarttab set lbr "set tw=78 set sm """""""""""""""""""""""""""""" " Indent """""""""""""""""""""""""""""" "Auto indent set ai "Smart indet set si "C-style indeting "set cindent "Wrap lines set nowrap """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Spell checking """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" map <leader>sn ]s map <leader>sp [s map <leader>sa zg map <leader>s? z= """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Complete """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " options set completeopt=menu set complete-=u set complete-=i set report=0 " mapping inoremap <expr> <CR> pumvisible()?"\<C-Y>":"\<CR>" inoremap <expr> <C-J> pumvisible()?"\<PageDown>\<C-N>\<C-P>":"\<C-X><C-O>" inoremap <expr> <C-K> pumvisible()?"\<PageUp>\<C-P>\<C-N>":"\<C-K>" inoremap <expr> <C-U> pumvisible()?"\<C-E>":"\<C-U>" inoremap <C-]> <C-X><C-]> inoremap <C-F> <C-X><C-F> inoremap <C-D> <C-X><C-D> inoremap <C-L> <C-X><C-L> " Enable syntax if has("autocmd") && exists("+omnifunc") autocmd Filetype * \if &omnifunc == "" | \ setlocal omnifunc=syntaxcomplete#Complete | \endif endif """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " cscope setting """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" if has("cscope") if MySys() == "linux" set csprg=/usr/bin/cscope else set csprg=cscope endif set csto=0 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add cscope.out endif set csverb endif nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Plugin configuration """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""" " super tab """""""""""""""""""""""""""""" let g:SuperTabPluginLoaded=1 " Avoid load SuperTab Plugin let g:SuperTabDefaultCompletionType='context' let g:SuperTabContextDefaultCompletionType='<c-p>' "let g:SuperTabCompletionContexts = ['s:ContextText', 's:ContextDiscover'] "let g:SuperTabContextTextOmniPrecedence = ['&omnifunc', '&completefunc'] "let g:SuperTabContextDiscoverDiscovery = " \ ["&completefunc:<c-x><c-u>", "&omnifunc:<c-x><c-o>"] """""""""""""""""""""""""""""" " yank ring setting """""""""""""""""""""""""""""" let g:yankring_enabled=1 let g:yankring_history_file='.yankring_history_file' map <leader>yr :YRShow<cr> """""""""""""""""""""""""""""" " file explorer setting """""""""""""""""""""""""""""" "Split vertically let g:explVertical=1 "Window size let g:explWinSize=35 let g:explSplitLeft=1 let g:explSplitBelow=1 "Hide some files let g:explHideFiles='^\.,.*\.class$,.*\.swp$,.*\.pyc$,.*\.swo$,\.DS_Store$' "Hide the help thing.. let g:explDetailedHelp=0 """""""""""""""""""""""""""""" " bufexplorer setting """""""""""""""""""""""""""""" let g:bufExplorerDefaultHelp=1 " Do not show default help. let g:bufExplorerShowRelativePath=1 " Show relative paths. let g:bufExplorerSortBy='mru' " Sort by most recently used. let g:bufExplorerSplitRight=0 " Split left. let g:bufExplorerSplitVertical=1 " Split vertically. let g:bufExplorerSplitVertSize = 30 " Split width let g:bufExplorerUseCurrentWindow=1 " Open in new window. let g:bufExplorerMaxHeight=25 " Max height """""""""""""""""""""""""""""" " taglist setting """""""""""""""""""""""""""""" if MySys() == "windows" let Tlist_Ctags_Cmd = 'ctags' elseif MySys() == "linux" let Tlist_Ctags_Cmd = '/usr/bin/ctags' endif let Tlist_Show_One_File = 1 let Tlist_Exit_OnlyWindow = 1 let Tlist_Use_Right_Window = 1 let Tlist_Auto_Open = 1 let Tlist_WinWidth = 35 nmap <silent> <leader>tl :Tlist<cr> """""""""""""""""""""""""""""" " winmanager setting """""""""""""""""""""""""""""" let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList" let g:winManagerWidth = 35 let g:defaultExplorer = 0 nmap <C-W><C-F> :FirstExplorerWindow<cr> nmap <C-W><C-B> :BottomExplorerWindow<cr> nmap <silent> <leader>wm :WMToggle<cr> autocmd BufWinEnter \[Buf\ List\] setl nonumber """""""""""""""""""""""""""""" " NERDTree setting """""""""""""""""""""""""""""" nmap <silent> <leader>tt :NERDTreeToggle<cr> """""""""""""""""""""""""""""" " lookupfile setting """""""""""""""""""""""""""""" let g:LookupFile_MinPatLength = 2 let g:LookupFile_PreserveLastPattern = 0 let g:LookupFile_PreservePatternHistory = 0 let g:LookupFile_AlwaysAcceptFirst = 1 let g:LookupFile_AllowNewFiles = 0 let g:LookupFile_UsingSpecializedTags = 1 let g:LookupFile_Bufs_LikeBufCmd = 0 let g:LookupFile_ignorecase = 1 let g:LookupFile_smartcase = 1 if filereadable("filenametags") let g:LookupFile_TagExpr = '"filenametags"' endif nmap <silent> <leader>lk :LUTags<cr> nmap <silent> <leader>ll :LUBufs<cr> nmap <silent> <leader>lw :LUWalk<cr> " lookup file with ignore case function! LookupFile_IgnoreCaseFunc(pattern) let _tags = &tags try let &tags = eval(g:LookupFile_TagExpr) let newpattern = '\c' . a:pattern let tags = taglist(newpattern) catch echohl ErrorMsg | echo "Exception: " . v:exception | echohl NONE return "" finally let &tags = _tags endtry " Show the matches for what is typed so far. let files = map(tags, 'v:val["filename"]') return files endfunction let g:LookupFile_LookupFunc = 'LookupFile_IgnoreCaseFunc' """""""""""""""""""""""""""""" " markbrowser setting """""""""""""""""""""""""""""" " nmap <silent> <leader>mk :MarksBrowser<cr> """""""""""""""""""""""""""""" " showmarks setting """""""""""""""""""""""""""""" " Enable ShowMarks let showmarks_enable = 1 " Show which marks let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" " Ignore help, quickfix, non-modifiable buffers let showmarks_ignore_type = "hqm" " Hilight lower & upper marks let showmarks_hlline_lower = 1 let showmarks_hlline_upper = 1 """""""""""""""""""""""""""""" " mark setting """""""""""""""""""""""""""""" nmap <silent> <leader>hl <Plug>MarkSet vmap <silent> <leader>hl <Plug>MarkSet nmap <silent> <leader>hh <Plug>MarkClear vmap <silent> <leader>hh <Plug>MarkClear nmap <silent> <leader>hr <Plug>MarkRegex vmap <silent> <leader>hr <Plug>MarkRegex """""""""""""""""""""""""""""" " FeralToggleCommentify setting """""""""""""""""""""""""""""" let loaded_feraltogglecommentify = 1 "map <silent> <leader>tc :call ToggleCommentify()<CR>j "imap <M-c> <ESC>:call ToggleCommentify()<CR>j """""""""""""""""""""""""""""" " vimgdb setting """""""""""""""""""""""""""""" let g:vimgdb_debug_file = "" run macros/gdb_mappings.vim """""""""""""""""""""""""""""" " eclim setting """""""""""""""""""""""""""""" let g:EclimTaglistEnabled=0 """""""""""""""""""""""""""""" " FSwitch setting """""""""""""""""""""""""""""" au! BufEnter *.cc,*.cpp let b:fswitchdst = 'h' | let b:fswitchlocs = '.' au! BufEnter *.h let b:fswitchdst = 'cc,cpp' | let b:fswitchlocs = '.' let g:fsnonewfiles = "on" nmap <silent> <Leader>of :FSHere<cr> """""""""""""""""""""""""""""" " Tagbar setting """""""""""""""""""""""""""""" let g:tagbar_width = 40 let g:tagbar_expand = 1 nmap <silent> <Leader>bb :TagbarToggle<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Filetype generic """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Todo """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "au BufNewFile,BufRead *.todo so ~/vim_local/syntax/amido.vim """""""""""""""""""""""""""""" " HTML related """""""""""""""""""""""""""""" " HTML entities - used by xml edit plugin let xml_use_xhtml = 1 "let xml_no_auto_nesting = 1 "To HTML let html_use_css = 1 let html_number_lines = 0 let use_xhtml = 1 autocmd FileType * set formatoptions=tcql nocindent comments& autocmd FileType c,cpp,java,pl,sh,py set formatoptions=croql cindent comments=sr:/*,mb:*,ex:*/,:// nnoremap <c-s-f> 1G=G inoremap <c-s-f> <ESC>1G=Gi """"""""""""""""""""""""""""""" " Vim section """"""""""""""""""""""""""""""" "autocmd FileType vim set nofen "autocmd FileType vim map <buffer> <leader><space> :w!<cr>:source %<cr> """""""""""""""""""""""""""""" " HTML """"""""""""""""""""""""""""""" "au FileType html set ft=xml "au FileType html set syntax=html """""""""""""""""""""""""""""" " C/C++ """"""""""""""""""""""""""""""" "autocmd FileType c,cpp,xml map <buffer> <leader><space> :make<cr> "autocmd FileType c,cpp setl foldmethod=syntax | setl fen """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " MISC """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Quickfix nmap <leader>cn :cn<cr> nmap <leader>cp :cp<cr> nmap <leader>cw :cw 10<cr> nmap <leader>cc :botright lw 10<cr> "map <c-u> <c-l><c-j>:q<cr>:botright cw 10<cr> function! s:GetVisualSelection() let save_a = @a silent normal! gv"ay let v = @a let @a = save_a let var = escape(v, '\\/.$*') return var endfunction " Fast grep nmap <silent> <leader>lv :lv /<c-r>=expand("<cword>")<cr>/ %<cr>:lw<cr> vmap <silent> <leader>lv :lv /<c-r>=<sid>GetVisualSelection()<cr>/ %<cr>:lw<cr> " Fast diff "cmap @vd vertical diffsplit set diffopt+=vertical "Remove the Windows ^M noremap <Leader>dm mzHmx:%s/<C-V><cr>//ge<cr>'xzt'z:delm x z<cr> "Paste toggle - when pasting something in, don't indent. set pastetoggle=<F3> "Remove indenting on empty lines "map <F2> :%s/\s*$//g<cr>:noh<cr>'' "Super paste "inoremap <C-v> <esc>:set paste<cr>mui<C-R>+<esc>mv'uV'v=:set nopaste<cr> "Fast Ex command "nnoremap ; : "For mark move "nnoremap <leader>' ' "Fast copy "nnoremap ' " "A function that inserts links & anchors on a TOhtml export. " Notice: " Syntax used is: " Link " Anchor function! SmartTOHtml() TOhtml try %s/"\s\+\*> \(.\+\)</" <a href="#\1" style="color: cyan">\1<\/a></g %s/"\(-\|\s\)\+\*> \(.\+\)</" \ \ <a href="#\2" style="color: cyan;">\2<\/a></g %s/"\s\+=> \(.\+\)</" <a name="\1" style="color: #fff">\1<\/a></g catch endtry exe ":write!" exe ":bd" endfunction """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Mark as loaded """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let g:vimrc_loaded = 1