vim配置

vim配置
2011年08月17日
  1、编辑用户目录下的文件.vimrc,注意这个文件名第一个字符是点号,如果没有这个文件就创建它。
  2、配色设置文件放在xx.vim文件中, .vimrc 中设置colorscheme xx.
  经典设置:
  """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Maintainer: amix the lucky stiff" http://amix.dk - amix@amix.dk"" Version: 3.6 - 25/08/10 14:40:30"" Blog_post: " http://amix.dk/blog/post/19486#The-ultimate-vim-configuration-vimrc" Syntax_highlighted:" http://amix.dk/vim/vimrc.html" Raw_version: " http://amix.dk/vim/vimrc.txt"" How_to_Install_on_Unix:" $ mkdir ~/.vim_runtime" $ svn co svn://orangoo.com/vim ~/.vim_runtime" $ cat ~/.vim_runtime/install.sh" $ sh ~/.vim_runtime/install.sh " can be `mac`, `linux` or `windows`"" How_to_Upgrade:" $ svn update ~/.vim_runtime"" Sections:" -> General" -> VIM user interface" -> Colors and Fonts" -> Files and backups" -> Text, tab and indent related" -> Visual mode related" -> Command mode related" -> Moving around, tabs and buffers" -> Statusline" -> Parenthesis/bracket expanding" -> General Abbrevs" -> Editing mappings"" -> Cope" -> Minibuffer plugin" -> Omni complete functions" -> Python section" -> JavaScript section""" Plugins_Included:" > minibufexpl.vim - http://www.vim.org/scripts/script.php?script_id=159" Makes it easy to get an overview of buffers:" info -> :e ~/.vim_runtime/plugin/minibufexpl.vim"" > bufexplorer - http://www.vim.org/scripts/script.php?script_id=42" Makes it easy to switch between buffers:" info -> :help bufExplorer"" > yankring.vim - http://www.vim.org/scripts/script.php?script_id=1234" Emacs's killring, useful when using the clipboard:" info -> :help yankring"" > surround.vim - http://www.vim.org/scripts/script.php?script_id=1697" Makes it easy to work with surrounding text:" info -> :help surround"" > snipMate.vim - http://www.vim.org/scripts/script.php?script_id=2540" Snippets for many languages (similar to TextMate's):" info -> :help snipMate"" > mru.vim - http://www.vim.org/scripts/script.php?script_id=521" Plugin to manage Most Recently Used (MRU) files:" info -> :e ~/.vim_runtime/plugin/mru.vim"" > Command-T - http://www.vim.org/scripts/script.php?script_id=3025" Command-T plug-in provides an extremely fast, intuitive mechanism for opening filesa:" info -> :help CommandT" screencast and web-help -> http://amix.dk/blog/post/19501""" Revisions:" > 3.6: Added lots of stuff (colors, Command-T, Vim 7.3 persistent undo etc.)" > 3.5: Paste mode is now shown in status line if you are in paste mode" > 3.4: Added mru.vim" > 3.3: Added syntax highlighting for Mako mako.vim " > 3.2: Turned on python_highlight_all for better syntax" highlighting for Python" > 3.1: Added revisions ;) and bufexplorer.vim"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => General"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Sets how many lines of history VIM has to rememberset history=700" Enable filetype pluginfiletype plugin onfiletype indent on" Set to auto read when a file is changed from the outsideset autoread" With a map leader it's possible to do extra key combinations" like w saves the current filelet mapleader = ","let g:mapleader = ","" Fast savingnmap w :w!" Fast editing of the .vimrcmap e :e! ~/.vim_runtime/vimrc" When vimrc is edited, reload itautocmd! bufwritepost vimrc source ~/.vim_runtime/vimrc"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => VIM user interface"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Set 7 lines to the curors - when moving vertical..set so=7set wildmenu "Turn on WiLd menuset ruler "Always show current positionset cmdheight=2 "The commandbar heightset hid "Change buffer - without saving" Set backspace configset backspace=eol,start,indentset whichwrap+=,h,lset ignorecase "Ignore case when searchingset smartcaseset hlsearch "Highlight search thingsset incsearch "Make search act like search in modern browsersset nolazyredraw "Don't redraw while executing macros set magic "Set magic on, for regular expressionsset showmatch "Show matching bracets when text indicator is over themset mat=2 "How many tenths of a second to blink" No sound on errorsset noerrorbellsset novisualbellset t_vb=set tm=500"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Colors and Fonts"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""syntax enable "Enable syntax hl" Set font according to systemif MySys() == "mac" set gfn=Menlo:h14 set shell=/bin/bashelseif MySys() == "windows" set gfn=Bitstream\ Vera\ Sans\ Mono:h10elseif MySys() == "linux" set gfn=Monospace\ 10 set shell=/bin/bashendifif has("gui_running") set guioptions-=T set t_Co=256 set background=dark colorscheme peaksea set nonuelse colorscheme zellner set background=dark set nonuendifset encoding=utf8try lang en_UScatchendtryset ffs=unix,dos,mac "Default file types"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Files, backups and undo"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Turn backup off, since most stuff is in SVN, git anyway...set nobackupset nowbset noswapfile"Persistent undotry if MySys() == "windows" set undodir=C:\Windows\Temp else set undodir=~/.vim_runtime/undodir endif set undofilecatchendtry"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Text, tab and indent related"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""set expandtabset shiftwidth=4set tabstop=4set smarttabset lbrset tw=500set ai "Auto indentset si "Smart indetset wrap "Wrap lines""""""""""""""""""""""""""""""" => Visual mode related""""""""""""""""""""""""""""""" Really useful!" In visual mode when you press * or # to search for the current selectionvnoremap * :call VisualSearch('f')vnoremap # :call VisualSearch('b')" When you press gv you vimgrep after the selected textvnoremap gv :call VisualSearch('gv')map g :vimgrep // **/*.function! CmdLine(str) exe "menu Foo.Bar :" . a:str emenu Foo.Bar unmenu Fooendfunction " From an idea by Michael Naumannfunction! 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" elseif a:direction == 'gv' call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.') elseif a:direction == 'f' execute "normal /" . l:pattern . "^M" endif let @/ = l:pattern let @" = l:saved_regendfunction"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Command mode related"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Smart mappings on the command linecno $h e ~/cno $d e ~/Desktop/cno $j e ./cno $c e eCurrentFileDir("e")" $q is super useful when browsing on the command linecno $q eDeleteTillSlash()" Bash like keys for the command linecnoremap cnoremap cnoremap cnoremap cnoremap " Useful on some European keyboardsmap 陆 $imap 陆 $vmap 陆 $cmap 陆 $func! Cwd() let cwd = getcwd() return "e " . cwd endfuncfunc! DeleteTillSlash() let g:cmd = getcmdline() if MySys() == "linux" || MySys() == "mac" let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*", "\\1", "") else let g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\]\\).*", "\\1", "") endif if g:cmd == g:cmd_edited if MySys() == "linux" || MySys() == "mac" let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*/", "\\1", "") else let g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\\]\\).*\[\\\\\]", "\\1", "") endif endif return g:cmd_editedendfuncfunc! CurrentFileDir(cmd) return a:cmd . " " . expand("%:p:h") . "/"endfunc"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Moving around, tabs and buffers"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Map space to / (search) and c-space to ? (backgwards search)map /map ?map :noh" Smart way to move btw. windowsmap jmap kmap hmap l" Close the current buffermap bd :Bclose" Close all the buffersmap ba :1,300 bd!" Use the arrows to something usefullmap :bnmap :bp" Tab configurationmap tn :tabnewmap te :tabedit map tc :tabclosemap tm :tabmove " When pressing cd switch to the directory of the open buffermap cd :cd %:p:hcommand! Bclose call BufcloseCloseIt()function! 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) endifendfunction" Specify the behavior when switching between buffers try set switchbuf=usetab set stal=2catchendtry""""""""""""""""""""""""""""""" => Statusline""""""""""""""""""""""""""""""" Always hide the statuslineset laststatus=2" Format the statuslineset statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%cfunction! CurDir() let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g") return curdirendfunctionfunction! HasPaste() if &paste return 'PASTE MODE ' else return '' endifendfunction"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Parenthesis/bracket expanding""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""vnoremap $1 `>a)`vnoremap $2 `>a]`vnoremap $3 `>a}`vnoremap $$ `>a"`vnoremap $q `>a'`vnoremap $e `>a"`" Map auto complete of (, ", ', [inoremap $1 ()iinoremap $2 []iinoremap $3 {}iinoremap $4 {o}Oinoremap $q ''iinoremap $e ""iinoremap $t i"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => General Abbrevs"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""iab xdate =strftime("%d/%m/%y %H:%M:%S")"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Editing mappings""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Remap VIM 0map 0 ^"Move a line of text using ALT+[jk] or Comamnd+[jk] on macnmap mz:m+`znmap mz:m-2`zvmap :m'>+`mzgv`yo`zvmap :m'`>my` nmap vmap vmap endif"Delete trailing white space, useful for Python ;)func! DeleteTrailingWS() exe "normal mz" %s/\s\+$//ge exe "normal `z"endfuncautocmd BufWrite *.py :call DeleteTrailingWS()set guitablabel=%t"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Cope"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Do :help cope if you are unsure what cope is. It's super useful!map cc :botright copemap n :cnmap p :cp""""""""""""""""""""""""""""""" => bufExplorer plugin""""""""""""""""""""""""""""""let g:bufExplorerDefaultHelp=0let g:bufExplorerShowRelativePath=1map o :BufExplorer""""""""""""""""""""""""""""""" => Minibuffer plugin""""""""""""""""""""""""""""""let g:miniBufExplModSelTarget = 1let g:miniBufExplorerMoreThanOne = 2let g:miniBufExplModSelTarget = 0let g:miniBufExplUseSingleClick = 1let g:miniBufExplMapWindowNavVim = 1let g:miniBufExplVSplit = 25let g:miniBufExplSplitBelow=1let g:bufExplorerSortBy = "name"autocmd BufRead,BufNew :call UMiniBufExplorermap u :TMiniBufExplorer"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Omni complete functions"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""autocmd FileType css set omnifunc=csscomplete#CompleteCSS"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Spell checking""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Pressing ,ss will toggle and untoggle spell checkingmap ss :setlocal spell!"Shortcuts using map sn ]smap sp [smap sa zgmap s? z=""""""""""""""""""""""""""""""" => Python section""""""""""""""""""""""""""""""let python_highlight_all = 1au FileType python syn keyword pythonDecorator True None False selfau BufNewFile,BufRead *.jinja set syntax=htmljinjaau BufNewFile,BufRead *.mako set ft=makoau FileType python inoremap $r return au FileType python inoremap $i import au FileType python inoremap $p print au FileType python inoremap $f #--- PH ----------------------------------------------FP2xiau FileType python map 1 /class au FileType python map 2 /def au FileType python map C ?class au FileType python map D ?def """"""""""""""""""""""""""""""" => JavaScript section"""""""""""""""""""""""""""""""au FileType javascript call JavaScriptFold()au FileType javascript setl fenau FileType javascript setl nocindentau FileType javascript imap AJS.log();hiau FileType javascript imap alert();hiau FileType javascript inoremap $r return au FileType javascript inoremap $f //--- PH ----------------------------------------------FP2xifunction! JavaScriptFold() setl foldmethod=syntax setl foldlevelstart=1 syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend function! FoldText() return substitute(getline(v:foldstart), '{.*', '{...}', '') endfunction setl foldtext=FoldText()endfunction""""""""""""""""""""""""""""""" => MRU plugin""""""""""""""""""""""""""""""let MRU_Max_Entries = 400map f :MRU""""""""""""""""""""""""""""""" => Command-T""""""""""""""""""""""""""""""let g:CommandTMaxHeight = 15set wildignore+=*.o,*.obj,.git,*.pycnoremap j :CommandTnoremap y :CommandTFlush""""""""""""""""""""""""""""""" => Vim grep""""""""""""""""""""""""""""""let Grep_Skip_Dirs = 'RCS CVS SCCS .svn generated'set grepprg=/bin/grep\ -nH"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => MISC"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Remove the Windows ^M - when the encodings gets messed upnoremap m mmHmt:%s///ge'tzt'm"Quickly open a buffer for scripbblemap q :e ~/bufferau BufRead,BufNewFile ~/buffer iab xh1 ===========================================map pp :setlocal paste!map bb :cd ..
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值