`
mnfp20mnfp
  • 浏览: 17702 次
社区版块
存档分类
最新评论

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 ..
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics