<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 189,comments - 115,trackbacks - 0
    VIM使用系列之一——配置VIM下編程和代碼閱讀環(huán)境
    http://blog.csdn.net/gnuhpc/article/details/6739568

    作者:gnuhpc from http://blog.csdn.net/gnuhpc  http://gnuhpc.wordpress.com/

    本文環(huán)境:ubuntu 10.10/vim7.2

    言:一年前寫過一篇關(guān)于VIM的C/C++編程環(huán)境的文字,一年中又接觸了很多東西,深入使用中發(fā)現(xiàn)其實還是需要有很多改正和增強(qiáng)的,當(dāng)然,VIM社區(qū)中也出現(xiàn)了更多好用插件需要整合進(jìn)來。為了更好的總結(jié)整個環(huán)境配置方法以及使用方法,特寫此文從零開始配置vim環(huán)境,主要針對C/C++/Python/Bash編程。

    本配置
    1) 建立基本環(huán)境:

    建立三個目錄:mkdir ~/.vim/{plugin,doc,syntax} -p

    建立配置文件:touch ~/.vimrc

    .vimrc是vim的主要配置文件,我們在配置VIM時首先對它進(jìn)行基本的設(shè)置。打開home目錄下剛剛建立的.vimrc文件,可以對VIM進(jìn)行如下的一系列基本選項設(shè)置:

    set wildmenu
    “增強(qiáng)模式中的命令行自動完成操作
    set foldmethod=manual
    “設(shè)定折疊方式為手動
    set cin    
    “實現(xiàn)C程序的縮進(jìn)
    set sta    
    “插入<tab>時使用’shiftwidth’
    set backspace=2
    “指明在插入模式下可以使用<BS>刪除光標(biāo)前面的字符
    syntax enable
    “設(shè)置高亮關(guān)鍵字顯示
    set nocompatible
    “去掉討厭的有關(guān)vi一致性模式,避免以前版本的一些bug和局限
    set number
    “顯示行號
    filetype on
    “檢測文件的類型
    set history=1000
    “”記錄歷史的行數(shù)
    set background=dark
    “背景使用黑色
    set autoindent
    set smartindent
    “上面兩行在進(jìn)行編寫代碼時,在格式對起上很有用;
    “第一行,vim使用自動對起,也就是把當(dāng)前行的對起格式應(yīng)用到下一行;
    “第二行,依據(jù)上面的對起格式,智能的選擇對起方式,對于類似C語言編寫上很有用
    “第一行設(shè)置tab鍵為4個空格,第二行設(shè)置當(dāng)行之間交錯時使用4個空格
    set tabstop=4
    set shiftwidth=4
    set showmatch
    “設(shè)置匹配模式,類似當(dāng)輸入一個左括號時會匹配相應(yīng)的那個右括號
    set ruler
    “在編輯過程中,在右下角顯示光標(biāo)位置的狀態(tài)行
    set incsearch
    “查詢時非常方便,如要查找book單詞,當(dāng)輸入到/b時,會自動找到第一
    “個b開頭的單詞,當(dāng)輸入到/bo時,會自動找到第一個bo開頭的單詞,依
    “次類推,進(jìn)行查找時,使用此設(shè)置會快速找到答案,當(dāng)你找要匹配的單詞
    “時,別忘記回車。
    set enc=utf-8
    “設(shè)置編碼為中文
    set winaltkeys=no
    “Alt組合鍵不映射到菜單上
    set laststatus=2
    “總是出現(xiàn)狀態(tài)欄
    set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P>
    “設(shè)置狀態(tài)欄
    set hidden
    “設(shè)置隱藏已修改buffer
    autocmd FileType python setlocal et sta sw=4 sts=4

    2)安裝中文幫助手冊
    這個看個人需要,下載地址:http://vimcdoc.sourceforge.net/

    安裝:

    $tar xvf vimcdoc-1.7.0.tar.gz
    $ cd vimcdoc-1.7.0/
    $ ./vimcdoc.sh -i

    在一堆done后完成。在~/.vimrc里加上set helplang=cn 這句話標(biāo)明幫助文檔為中文。在vim中”:help”后就能看到效果。

    件配置

    首先要在.vimrc中添加以下語句來使能插件:

    filetype plugin on
    filetype plugin indent on

    1.代碼快速編輯和編譯運行:C-support,Bash-support

    C-support下載安裝:

    下載:http://www.vim.org/scripts/script.php?script_id=213

    安裝:將下載的文件解壓放到~/.vim目錄中

    Bash-support下載安裝:

    下載:http://www.vim.org/scripts/download_script.php?src_id=16019

    安裝:將下載文件解壓放到~/.vim目錄中

    使用方法:

    • a)自動添加文件頭:
      添加你自己的信息: vim ~/.vim/c-support/templates/Templates
      ~/.vim/c-support/templates 這個目錄下還有許多模板,你可以自己定制。現(xiàn)在試著vim test.c看一看效果。
    • b)快捷輸入
      主要是一些模板的插入,種類幾乎覆蓋C/C++/Bash開發(fā)中大多數(shù)需要手動輸入的東西。不過我不是很喜歡它的默認(rèn)模板的代碼風(fēng)格,不過可以通過上述的目錄中的文件去定制。這個功能在后邊的code complete插件中也提供了。當(dāng)然,也包含一些比如注釋等的操作。
    • 另外一部分是編譯運行的快捷鍵,還有一個把另一個文件內(nèi)容直接灌入當(dāng)前文件的功能。
    • 有關(guān)使用熱鍵的方法見一個文檔:http://lug.fh-swf.de/vim/vim-c/c-hotkeys.pdf(內(nèi)容如下)
    • C
    • image
    • image
    • Shell
    • image  image

    2.閱讀源代碼:Ctags+Tag List +Win Manger+Cscope

    這三個分別是生成標(biāo)簽、列出標(biāo)簽(使用ctags)、列出文件、代碼跳轉(zhuǎn)。

    下載安裝:

    下載安裝Exuberant Ctags :sudo apt-get install exuberant-ctags 
    (我們安裝ctags但是并不直接使用它作為代碼跳轉(zhuǎn)工具,而是使用cscope)

    Teg List下載:http://www.vim.org/scripts/download_script.php?src_id=7701

    安裝:解壓到home目錄下的.vim子目錄中。

    WinManager(調(diào)整窗口布局)下載:http://www.vim.org/scripts/download_script.php?src_id=754

    安裝:解壓到home目錄下的.vim子目錄中。

    下載安裝cscope:sudo apt-get install cscope

    配置:
    進(jìn)入$HOME/.vim/doc打開 Vim 運行 “:helptags .” 這是要保證taglist幫助可以正常使用。

    然后為后邊配置自動補(bǔ)全建立系統(tǒng)tags:(具體為什么采用這樣的參數(shù)請參考ctags命令行幫助

    ctags -R -f ~/.vim/systags –c-kinds=+p –c++-kinds=+px –fields=+iaS –extra=+q –python-kinds=-i /usr/include /usr/local/include

    隨后在vimrc中添加如下幾行:

    “禁止自動改變當(dāng)前Vim窗口的大小
    let Tlist_Inc_Winwidth=0
    “把方法列表放在屏幕的右側(cè)
    let Tlist_Use_Right_Window=1
    “讓當(dāng)前不被編輯的文件的方法列表自動折疊起來, 這樣可以節(jié)約一些屏幕空間
    let Tlist_File_Fold_Auto_Close=1

    “映射F3為功能鍵調(diào)出winmanager的文件瀏覽器
    “映射雙擊F3調(diào)出Taglist的符號瀏覽器
    “let g:winManagerWindowLayout=’FileExplorer|TagList’ “你要是喜歡這種布局可以注釋掉這一行
    map <F3> :WMToggle<cr>
    map <F3><F3> :TlistToggle<cr>
    “將系統(tǒng)已經(jīng)生成的tags導(dǎo)入
    set tags+=~/.vim/systags

    “映射F10為添加cscope和ctags
    map <F10> :call Do_CsTag()<CR>
    map <F10><F10> :call Add_CsTag()<CR>
    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>

    function Do_CsTag()
        silent! execute “!ctags -R ‘.’”
        if(executable(‘cscope’) && has(“cscope”) )
            silent! execute “!find -L `pwd` -name ‘*.h’ -o -name ‘*.c’ -o -name ‘*.cpp’ -o -name ‘*.java’ -o -name ‘*.cs’ -o     -name ‘*.cxx’ -o -name ‘*.hxx’> cscope.files -o -name ‘*.hpp’ -o -name ‘*.py’”    endif
        silent! execute “!cscope -bq”
        silent! execute “call Add_CsTag()”
    endf

    function Add_CsTag()
        if filereadable(“cscope.out”)
            execute “cs add cscope.out”
            execute “set tags+=./tags”
        endif
    endf

    silent! execute “call Add_CsTag()”

    使用方法:

    • 雙擊F3調(diào)出函數(shù)、變量等tags。
    • 單擊F3出現(xiàn)文件管理器(重復(fù)這個過程關(guān)閉)。以上產(chǎn)生的子區(qū)域都是通過Crtl+ww來相互跳轉(zhuǎn)
    • 單擊F10生成這個目錄及其子目錄的tags以及cscope文件,并添加。
    • 雙擊F10僅加載tags和cscope文件
    • 將光標(biāo)指向一些函數(shù)名或者變量名,使用Crtl+\+以下字母來跳轉(zhuǎn),并使用Crtl+O跳轉(zhuǎn)回來

    s: 查找C語言符號,即查找函數(shù)名、宏、枚舉值等出現(xiàn)的地方 
    g: 查找函數(shù)、宏、枚舉等定義的位置,類似ctags所提供的功能 
    d: 查找本函數(shù)調(diào)用的函數(shù) 
    c: 查找調(diào)用本函數(shù)的函數(shù) 
    t: 查找指定的字符串 
    e: 查找egrep模式,相當(dāng)于egrep功能,但查找速度快多了 
    f: 查找并打開文件,類似vim的find功能 
    i: 查找包含本文件的文件

    • gd 轉(zhuǎn)到當(dāng)前光標(biāo)所指的局部變量的定義
    • * 轉(zhuǎn)到當(dāng)前光標(biāo)所指的單詞下一次出現(xiàn)的地方
    • # 轉(zhuǎn)到當(dāng)前光標(biāo)所指的單詞上一次出現(xiàn)的地方
    • ctrl+] 轉(zhuǎn)到函數(shù)定義的地方
    • ctrl+o 回退到函數(shù)調(diào)用的地方
    • TagList操作:

      <CR>          跳到光標(biāo)下tag所定義的位置,用鼠標(biāo)雙擊此tag功能也一樣
      o             在一個新打開的窗口中顯示光標(biāo)下tag
      <Space>       顯示光標(biāo)下tag的原型定義
      u             更新taglist窗口中的tag
      s             更改排序方式,在按名字排序和按出現(xiàn)順序排序間切換
      x             taglist窗口放大和縮小,方便查看較長的tag
      +             打開一個折疊,同zo
      -             將tag折疊起來,同zc
      *             打開所有的折疊,同zR
      =             將所有tag折疊起來,同zM
      [[            跳到前一個文件
      ]]            跳到后一個文件
      q             關(guān)閉taglist窗口
      <F1>          顯示幫助

    • WinManager操作:
       image 

       

    3.同名頭文件和源文件切換:A
    下載安裝:http://www.vim.org/scripts/download_script.php?src_id=7218,將a.vim 放到 ~/.vim/plugin 中。

    在.vimrc中添加:map <F11> :A<cr>

    • 使用: 在源文件或者頭文件中用F11就可以切換了。

    4.代碼塊和常用語句模板自動補(bǔ)全:code_complete

    下載安裝:http://www.vim.org/scripts/download_script.php?src_id=10778 ,放到 ~/.vim/plugin 中。

    把插件文件中的tab都改為C-b防止與后來我們要安裝的supertab沖突。

    另外,這個是基于ctags的,所以要生成或加載tags,參見2)部分。

    將下邊這一段加入到template段中以添加bash模板補(bǔ)全功能

    “Bash Templates
    “Bash Structure by warmbupt@gmail.com
    let g:template['sh'] = {}
    let g:template['sh']['sif'] = “if “.g:rs.”…”.g:re.” ; then/”.g:rs.”…”.g:re.”/fi”
    let g:template['sh']['sife'] = “if “.g:rs.”…”.g:re.” ; then/”.g:rs.”…”.g:re.”/else/”.g:rs.”…”.
                /g:re.”/fi”
    let g:template['sh']['scase'] = “case “.g:rs.”…”.g:re.” in/”.g:rs.”…”.g:re.”)//” .g:rs.”…”.g:re.”;;//”.
                /g:rs.”…”.g:re.”)//” .g:rs.”…”.g:re.”;;///esac/”
    let g:template['sh']['swhile'] = “while “.g:rs.”…”.g:re.” /do/”.g:rs.”…”.g:re.”/done”
    let g:template['sh']['suntil'] = “until “.g:rs.”…”.g:re.” /do/”.g:rs.”…”.g:re.”/done”
    let g:template['sh']['sfor'] = “for “.g:rs.”…”.g:re.” in ” .g:rs.”…”.g:re.”/do/”.g:rs.”…”.g:re.”/done”
    let g:template['sh']['sselect'] = “select “.g:rs.”…”.g:re.” in ” .g:rs.”…”.g:re.”/do/”.g:rs.”…”.g:re.”/done”

    使用:在輸入函數(shù)時可以快速輸入是安裝這個插件的主要目的。比如,輸入main,然后Crtl+b就可以看到效果了。對于函數(shù),在輸入strlen(后按C-b,會補(bǔ)全參數(shù),然后再按C-b就可以一個個填寫參數(shù)了。

    具體哪些可以補(bǔ)全如下:

    • C/C++語言:
      • cc /*  */
        de #define
        in #include    “”
        is #include    <>
        ff #ifndef 
        ife  if…els
        for for(;;)
        switch switch() case: …
        main int main()
    • BASH:
      • sif               if
        sife             if…els
        scase          case
        swhile         while
        suntil          until
        sfor             for
        sselect        select

    5.代碼補(bǔ)全:supertab+snipMate+omnicppcomplete 

    下載地址:
    http://www.vim.org/scripts/download_script.php?src_id=16104
    http://www.vim.org/scripts/download_script.php?src_id=16345

    安裝:用vim打開supertab.vba,然后使用:so % 進(jìn)行安裝。后兩者直接解壓在.vim目錄里即可。

    設(shè)置:進(jìn)入vim

    :helptags ~/.vim/doc

    并且在~/.vim/snippets/python.snippets中添加如下信息:

         snippet header
        #!/usr/bin/env python
        “”"
        File: `Filename(‘$1.py’, ‘foo.py’)`
        Author: gnuhpc
        Company: CMBC
        Date: `strftime(“%Y-%m-%d %T %Z”)`
        Description: ${1}
        “”"

    • 使用:
      • 使用tab就可以完成一些文件中已經(jīng)出現(xiàn)的詞匯的補(bǔ)全和常見結(jié)構(gòu)的補(bǔ)全了,這個功能與code_complete的結(jié)構(gòu)快速補(bǔ)充有所重疊,不過是使用tab鍵,你還可以在.vim/snippets目錄里自己定制。
      • 添加的header是為了python自動生成header,在.py文件中,首先輸入header后按tab就會出現(xiàn)這個header,具體的信息可以根據(jù)個人情況修改。

    6.原型提示:echofunc

    下載安裝:http://www.vim.org/scripts/download_script.php?src_id=15953,然后放到plugin目錄里。

    然后在.vimrc中設(shè)置:

    let g:EchoFuncKeyNext=’<C-n>’
    let g:EchoFuncKeyPrev=’<C-p>’

    • 使用:可以試著輸入select(就可以看到了下邊的原型提示了)。用Ctrl+n和Ctrl+p來上下翻動。
    • 小技巧:可以將這個插件與code_complete結(jié)合,在看到提示后按Ctrl+b補(bǔ)全函數(shù),然后按Ctrl+b,從左往右順序一個個填寫參數(shù)。

    7.C/STL/Python Doc提示:CRefVim 、stlrefvim 、Pyref

    下載安裝:

    http://www.vim.org/scripts/download_script.php?src_id=3666
    http://www.vim.org/scripts/download_script.php?src_id=9160
    http://www.vim.org/scripts/download_script.php?src_id=14576

    解壓后將crefvim目錄里的所有目錄都復(fù)制到.vim/下,其余的在.vim目錄解壓即可。

    然后進(jìn)入vim后” :helptags ~/.vim/doc”

    設(shè)置:

    打開plugin/stlrefvim.vim中將’tr’改為’cr’,這個是為了好記憶。

    把plugin/pyref.vim移動到ftplugin中,這樣只針對python文件的插件。

    在.vimrc中添加:let g:pyref_mapping = ‘K’

    使用:

    • \cr 查看C語言常見函數(shù)和操作符的使用指南(C Reference)
    • \sr查看STL常見方法的使用指南 (STL Reference)
    • 再加上Shift+k查詢man以及Python手冊,就全了。

    8.簡單注釋:comments

    下載安裝:http://www.vim.org/scripts/download_script.php?src_id=9801,放到plugin目錄中。這個插件支持很多語言。

    • 使用:在visual <Shift-V> 模式下,ctrl-c注釋,ctrl-x去注釋。

    9.代碼格式整理:astyle
    下載安裝:$sudo apt-get install astyle
    配置:

    在vimrc中寫入:

    “定義源代碼格式化
    map <F12> :call FormartSrc()<CR>
    “定義FormartSrc()
    func FormartSrc()
        exec “w”
        if &filetype == ‘c’
            exec “!astyle % –style=ansi –suffix=none %”
            exec “e! %”
        elseif &filetype == ‘cpp’
            “exec “!astyle % –style=ansi –suffix=none %”
            “exec “e! %”
        elseif &filetype == ‘perl’
            exec “!astyle –style=gnu –suffix=none %”
            exec “e! %”
        elseif &filetype == ‘py’
            exec “!astyle –style=gnu –suffix=none %”
            exec “e! %”
        elseif &filetype == ‘java’
            exec “!astyle –style=java –suffix=none %”
            exec “e! %”
        elseif &filetype == ‘jsp’
            exec “!astyle –style=gnu –suffix=none %”
            exec “e! %”
        elseif &filetype == ‘xml’
            exec “!astyle –style=gnu –suffix=none %”
            exec “e! %”
        elseif &filetype == ‘html’
            exec “!astyle –style=gnu –suffix=none %”
            exec “e! %”
        elseif &filetype == ‘htm’
            exec “!astyle –style=gnu –suffix=none %”
            exec “e! %”
        endif
    endfunc
    “結(jié)束定義FormartSrc

    • 使用:<F12> 進(jìn)行代碼格式化。

    10.多tab支持:NERD_tree

    下載安裝:http://www.vim.org/scripts/download_script.php?src_id=11834,解壓到.vim目錄即可

    設(shè)置:

    “設(shè)置tab的快捷鍵
    “Shift+t為新建一個標(biāo)簽,按兩次Shirt+t為跳轉(zhuǎn)標(biāo)簽
    map <S-t> :tabnew .<CR>
    map <S-t><S-t> <ESC>:tabnext<CR>

    • 使用:Shift+t就可以新建一個標(biāo)簽,連按Shfit+t兩次就可以切換標(biāo)簽。

    11. Python自動補(bǔ)全支持:Pydiction

    下載安裝:http://www.vim.org/scripts/download_script.php?src_id=11062 解壓放到~/.vim/after/ftplugin/ 路徑下

    將complete-dict文件放到~/.vim/tools/pydiction/目錄中。

    配置:

    “pydiction 1.2 python auto complete
    let g:pydiction_location = ‘~/.vim/tools/pydiction/complete-dict’
    let g:pydiction_menu_height = 20 

    • 使用:采用tab鍵進(jìn)行自動補(bǔ)全,比如import os.此時可以按tab進(jìn)行補(bǔ)全。

    12.自動檢查Python語法:pyflakes-vim

    下載安裝:pyflakes-vim.zip,在~/.vim/目錄下解壓。

    • 使用:當(dāng)你的python腳本語法有問題時,自動會在出錯處標(biāo)紅,并在屏幕下方顯示錯誤原因提示。

    13. Python常用功能:python_fn.vim

    下載安裝:python_fn.vim, 放到~/.vim/ftplugin/python中即可。

    • 使用:

    image 

    14. Python代碼自動折疊:Efficient python folding

    下載安裝:python_editing.vim,放在~/.vim/ftplugin/python即可。

    • 使用:f為折疊起來,F(xiàn)(Shift-f)是打開已經(jīng)折疊的代碼。

    15.代碼文檔化工具:Doxygen

    下載安裝:DoxygenToolkit.vim,放到~/.vim/plugin

    安裝doxygen:sudo apt-get install doxygen

    配置:.vimrc中添加,其中個人信息可以自己修改

    map <F4>a :D oxAuthor<CR>
    map <F4>f :D ox<CR>
    map <F4>b :D oxBlock<CR>
    map <F4>l :D oxLic<CR>
    map <F4>c odocClass<C-B>
    map <F4>m odocMember<C-B>
    let g:DoxygenToolkit_authorName=”pchuang, http://blog.csdn.net”
    let s:licenseTag = “Copyright(C)\<enter>”
    let s:licenseTag = s:licenseTag . “For free\<enter>”
    let s:licenseTag = s:licenseTag . “All right reserved\<enter>”
    let g:DoxygenToolkit_licenseTag = s:licenseTag
    let g:DoxygenToolkit_briefTag_funcName=”yes”
    let g:doxygen_enhanced_color=1

    使用:(需要安裝doxygen)

    • F4-a 文件頭注釋
    • F4-f  函數(shù)頭注釋
    • F4-b 程序塊注釋
    • F4-l license塊注釋
    • F4-c 類注釋
    • F4-m 類成員注釋

    16.配置一鍵編譯調(diào)試

    在.vimrc中設(shè)置:

    map <F8> :w<CR>:call CompileRun()<CR>
    map <F8><F8> :w<CR>:call Debug()<CR>

    func CompileRun()
        exec “w” 
        if &filetype == ‘c’ 
            exec “!gcc % -g -o %<”
            exec “!.\/%<”
        elseif &filetype ==’cpp’
            exec “!g++ % -g -o %<”
            exec “!.\/%<”
        elseif &filetype == ‘python’
            exec “!python %”
        endif
    endfunc

    func Debug()
        exec “w” 
        if &filetype == ‘c’ 
            exec “!rm %<”
            exec “!gcc % -g -o %<”
            exec “!gdb %<”
        elseif &filetype == ‘cpp’
            exec “!rm %<”
            exec “!g++ % -g -o %<”
            exec “!gdb %<”
            exec “!rm %<.class”
        elseif &filetype == ‘java’
            exec “!javac %”
            exec “!jdb %<”
        elseif &filetype == ‘python’
            exec “!pdb %”
        endif
    endfunc

    • 使用:F8編譯運行程序,雙擊F8為調(diào)試程序

    17.shell腳本自動加上執(zhí)行權(quán)限

    在.vimrc中配置:

    function ModeChange()
      if getline(1) =~ “^#!”
        if getline(1) =~ “/bin/”
            silent !chmod a+x <afile>
        endif
      endif
    endfunction
    au BufWritePost * call ModeChange()

    • 使用:在.sh文件編輯后自動被賦予執(zhí)行權(quán)限。

    18.從上次退出時編輯的位置繼續(xù)編輯

    在.vimrc中配置:

    autocmd BufReadPost *
      \ if line(“‘\”") > 0 && line (“‘\”") <= line(“$”) |
      \   exe “normal g’\”" |
      \ endif

    • 使用:在退出一個文件編輯后再次進(jìn)入時會自動跳轉(zhuǎn)到上次編輯的地方。

    19.配置括號自動添加

    在.vimrc中配置:

    :inoremap ( ()<ESC>i
    :inoremap ) <c-r>=ClosePair(‘)’)<CR>
    :inoremap { {}<ESC>i
    :inoremap } <c-r>=ClosePair(‘}’)<CR>
    :inoremap [ []<ESC>i
    :inoremap ] <c-r>=ClosePair(‘]’)<CR>
    :inoremap < <><ESC>i
    :inoremap > <c-r>=ClosePair(‘>’)<CR>
    function ClosePair(char)
        if getline(‘.’)[col('.') - 1] == a:char
            return “\<Right>”
        else
            return a:char
        endif
    endf

    • 使用:大中小圓括號的自動匹配添加。

    20.添加一些快捷鍵:

    在.vimrc中添加:

    map <F5> :w<CR>:make<CR>
    map <F5><F5> :make clean<CR>
    map <F6> :cw<CR>
    map <F6><F6> :ccl<CR>
    map <F7> :cn<CR>
    map <F7><F7> :cp<CR>

    map <S-o> o<ESC><CR> 
    map <C-a> ggVG
    map <S-q><S-q> :q!<CR>:q!<CR>:q!<CR> 
    map <C-H> :L1,L2s/src/tar/g
    map <S-F12> <ESC>I//<ESC><CR>
    map! <S-F12> <ESC>I//<ESC><CR>
    map <S-F12><S-F12> 02x<ESC><CR>
    map! <S-F12><S-F12> <ESC>02x<ESC><CR>
    map <F12> <ESC>$a// 
    map! <F12> <ESC>$a//

    使用:

    • F5                   make
    • 2*F5               make clean
    • F6                   quickfix查看詳細(xì)信息
    • 2*F6               關(guān)閉詳細(xì)信息
    • F7                   下一個結(jié)果
    • 2*F7               上一個結(jié)果
    • Shift+o           建立新行但是不插入
    • Ctrl+a             全選
    • 2*(Shift+q)     快速不保存
    • Ctrl+h             替換  (比如1,2s/set/get/g就是替換1到2行的set為get)

    考文獻(xiàn)

    http://www.vimer.cn/
    http://qixinglu.com/archives/vim_key_mapping
    http://easwy.com/blog/archives/advanced-vim-skills-cscope/
    http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx
    http://sinolog.it/?p=1443

    除apt-get安裝外的所有已經(jīng)配置好的vim設(shè)置打包如下,直接解壓到home目錄就可以直接使用了:

    下載地址:http://www.kuaipan.cn/file/id_13675463633282823.html

    (注意,有systags比較大,大概1.5G,主要是我的include目錄里有太多的東西,下載后可以刪除重新參照自動補(bǔ)全建立系統(tǒng)tags來自己生成


    另外,對于常用的VIM操作,個人的總結(jié)如下:http://blog.csdn.net/gnuhpc/article/details/5276368

    posted on 2011-09-02 09:05 MEYE 閱讀(1117) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲成A人片在线观看中文| 亚洲人配人种jizz| 又粗又长又爽又长黄免费视频 | 日韩中文字幕精品免费一区| 国产成人无码综合亚洲日韩| caoporn成人免费公开| 国产在线观看免费视频播放器| 国产成人精品日本亚洲专| 51在线视频免费观看视频| 婷婷亚洲综合五月天小说| a级毛片黄免费a级毛片| 亚洲最大激情中文字幕| 人成午夜免费大片在线观看| 免费人妻av无码专区| 日韩在线视精品在亚洲| 国产成人精品123区免费视频| 亚洲永久网址在线观看| 日本亚洲中午字幕乱码| 午夜毛片不卡免费观看视频| 亚洲一级特黄特黄的大片| 国产成人无码免费看视频软件| 亚洲日韩乱码中文无码蜜桃| 久久久久久精品免费看SSS| 亚洲视频欧洲视频| 成人免费一区二区三区| 久久亚洲精品无码播放| 一级人做人爰a全过程免费视频| 亚洲国产成人久久精品99| 九九视频高清视频免费观看| 亚洲日本一区二区一本一道 | 午夜精品射精入后重之免费观看| 国产V亚洲V天堂A无码| 精品免费视在线观看| 亚洲视频在线一区| 亚洲成人免费电影| 亚洲videosbestsex日本| 最近中文字幕mv免费高清电影 | 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 亚洲熟妇丰满xxxxx| 国产成人综合久久精品免费| 日本免费精品一区二区三区|