小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

vi/vim使用進(jìn)階: 自動(dòng)補(bǔ)全

 zale的圖書館 2011-06-24

本節(jié)所用命令的幫助入口:

:help compl-generic
:help 'complete'
:help ins-completion 

上篇文章介紹了vim的智能補(bǔ)全(omni補(bǔ)全),本篇主要介紹vim提供的其它補(bǔ)全方式。

除智能補(bǔ)全外,最常用的補(bǔ)全方式應(yīng)該是CTRL-NCTRL-P補(bǔ)全了。它們會(huì)在當(dāng)前緩沖區(qū)、其它緩沖區(qū),以及當(dāng)前文件所包含的頭文件中查找以光標(biāo)前關(guān)鍵字開始的單詞。智能補(bǔ)全不能對(duì)局部變量進(jìn)行補(bǔ)全,而CTRL-NCTRL-P補(bǔ)全則可以很好的勝任。

下圖是采用CTRL-P補(bǔ)全的一個(gè)例子,輸出字符”pa”,然后按CTRL-P,vim會(huì)在下拉菜單中列出所有的匹配功能供選擇,此時(shí)再按一下CTRL-P,就選中了第一個(gè)項(xiàng)目,也就是我想輸入的”parmp”。我們第一次輸入CTRL-P的是進(jìn)行補(bǔ)全,第二次輸入的CTRL-P是在下拉菜單中向上選擇,二者的含義是不同的。

我們知道,CTRL-P一般的含義是向上,因此CTRL-P補(bǔ)全是向上查找以進(jìn)行補(bǔ)全,而CTRL-N是向下查找以進(jìn)行補(bǔ)全,在不同場(chǎng)合使用不同的快捷鍵可以加速補(bǔ)全的速度。

使用CTRL-NCTRL-P補(bǔ)全時(shí),由’complete‘選項(xiàng)控制vim從哪些地方查找補(bǔ)全的內(nèi)容。例如,對(duì)于比較大的軟件項(xiàng)目,文件包含關(guān)系復(fù)雜,如果CTRL-NCTRL-P補(bǔ)全時(shí)查找所包含的頭文件,耗時(shí)會(huì)比較久。此時(shí),可以在’complete‘選項(xiàng)中去掉’i‘標(biāo)記,這樣CTRL-NCTRL-P補(bǔ)全就不在頭文件中查找了,速度會(huì)快很多;當(dāng)然,弊端就是你無法對(duì)頭文件中出現(xiàn)的某些內(nèi)容進(jìn)行補(bǔ)全了?!?span id="opkdopnojk" class="emphasis">complete‘選項(xiàng)中其它標(biāo)記的含義,請(qǐng)閱讀手冊(cè)頁(yè)。

vim中其它的補(bǔ)全方式包括:

整行補(bǔ)全                        CTRL-X CTRL-L
根據(jù)當(dāng)前文件里關(guān)鍵字補(bǔ)全        CTRL-X CTRL-N
根據(jù)字典補(bǔ)全                    CTRL-X CTRL-K
根據(jù)同義詞字典補(bǔ)全              CTRL-X CTRL-T
根據(jù)頭文件內(nèi)關(guān)鍵字補(bǔ)全          CTRL-X CTRL-I
根據(jù)標(biāo)簽補(bǔ)全                    CTRL-X CTRL-]
補(bǔ)全文件名                      CTRL-X CTRL-F
補(bǔ)全宏定義                      CTRL-X CTRL-D
補(bǔ)全vim命令                     CTRL-X CTRL-V
用戶自定義補(bǔ)全方式              CTRL-X CTRL-U
拼寫建議                        CTRL-X CTRL-S 

例如,當(dāng)我們按下”CTRL-X CTRL-F“時(shí),vim就會(huì)彈出下拉菜單,顯示出當(dāng)前目錄下的可選目錄和文件,如下圖所示。這樣,在輸入文件名時(shí)方便多了。

靈活的運(yùn)用這些補(bǔ)全方式,甚至自定義自己的補(bǔ)全方式,可以使你的工作更加高效。

可以在vimrc中定義下面的鍵綁定,以減少按鍵次數(shù):

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> 

SuperTab插件會(huì)記住你上次所使用的補(bǔ)全方式,下次再補(bǔ)全時(shí),直接使用TAB,就可以重復(fù)這種類型的補(bǔ)全。比如,上次你使用CTRL-X CTRL-F進(jìn)行了文件名補(bǔ)全,接下來,你就可以使用TAB來繼續(xù)進(jìn)行文件名補(bǔ)全,直到你再使用上面列出的補(bǔ)全命令進(jìn)行了其它形式的補(bǔ)全。這個(gè)插件在下面的鏈接下載:

http://www./scripts/script.php?script_id=1643

下載后,把它放到.vim/plugin目錄就可以了。

可以對(duì)下面兩個(gè)選項(xiàng)進(jìn)行配置,以調(diào)整SuperTab的缺省行為:

  • g:SuperTabRetainCompletionType的值缺省為1,意為記住你上次的補(bǔ)全方式,直到使用其它的補(bǔ)全命令改變它;如果把它設(shè)成2,意味著記住上次的補(bǔ)全方式,直到按ESC退出插入模式為止;如果設(shè)為0,意味著不記錄上次的補(bǔ)全方式。
  • g:SuperTabDefaultCompletionType的值設(shè)置缺省的補(bǔ)全方式,缺省為CTRL-P。

你可以在vimrc中設(shè)置這兩個(gè)變量,例如:

let g:SuperTabRetainCompletionType = 2
let g:SuperTabDefaultCompletionType = "<C-X><C-O>" 

現(xiàn)在你可以使用TAB來進(jìn)行補(bǔ)全了,就像在shell中那樣,方便了很多!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多