使用VIM開發軟體專案 12 補全 二

2021-04-14 16:29:15 字數 3002 閱讀 4486

本節所用命令的幫助入口:

上篇文章介紹了

vim的全能補全

(omni補全)

,本篇主要介紹

vim提供的其它補全方式。

除全能補全外,最常用的補全方式應該是

ctrl-n

和ctrl-p

補全了。它們會在當前緩衝區、其它緩衝區,以及當前檔案所包含的標頭檔案中查詢以游標前關鍵字開始的單詞。全能補全不能對區域性變數進行補全,而

ctrl-n

和ctrl-p

補全則可以很好的勝任。

下圖是採用

ctrl-p

補全的乙個例子,輸出字元

"pa"

,然後按

ctrl-p

,vim

會在下拉列表中列出所有的匹配功能供選擇,此時再按一下

ctrl-p

,就選中了第乙個專案,也就是我想輸入的

"parmp"

。我們第一次輸入

ctrl-p

的是進行補全,第二次輸入的

ctrl-p

是在下拉列表中向上選擇,二者的含義是不同的。

我們知道,

ctrl-p

一般的含義是向上,因此

ctrl-p

補全是向上查詢以進行補全,而

ctrl-n

是向下查詢以進行補全,在不同場合使用不同的快捷鍵可以加速補全的速度。

使用ctrl-n

和ctrl-p

補全時,由

'complete'

選項控制

vim從哪些地方查詢補全的內容。例如,對於比較大的軟體專案,檔案包含關係複雜,如果

ctrl-n

和ctrl-p

補全時查詢所包含的標頭檔案,耗時會比較久。此時,可以在

'complete'

選項中去掉

'i'標記,這樣

ctrl-n

和ctrl-p

補全就不在標頭檔案中查詢了,速度會快很多;當然,弊端就是你無法對頭檔案中出現的某些內容進行補全了。

'complete'

選項中其它標記的含義,請閱讀手冊頁。

vim中其它的補全方式包括:

例如,當我們按下

"ctrl-x ctrl-f"

時,vim

就會彈出下拉列表,顯示出當前目錄下的可選目錄和檔案,如下圖所示。這樣,在輸入檔名時方便多了。

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

可以在vimrc

中定義下面的鍵繫結,以減少按鍵次數:

supertab

外掛程式會記住你上次所使用的補全方式,下次再補全時,直接使用

tab,就可以重複這種型別的補全。比如,上次你使用

ctrl-x ctrl-f

進行了檔名補全,接下來,你就可以使用

目錄就可以了。

可以對下面兩個選項進行配置,以調整

supertab

的預設行為:

- g:supertabretaincompletiontype

的值預設為

1,意為記住你上次的補全方式,直到使用其它的補全命令改變它;如果把它設成

2,意味著記住上次的補全方式,直到按

esc退出插入模式為止;如果設為

0,意味著不記錄上次的補全方式。

- g:supertabdefaultcompletiontype

的值設定預設的補全方式,預設為

ctrl-p。

你可以在

vimrc

中設定這兩個變數,例如:

現在你可以使用

tab來進行補全了,就像在

shell

中那樣,方便了很多! [

參考文件]

1. vim

幫助檔案

尾記]

整行補全                        ctrl-x ctrl-l

根據當前檔案裡關鍵字補全        ctrl-x ctrl-n

根據字典補全                    ctrl-x ctrl-k

根據同義詞字典補全              ctrl-x ctrl-t

根據標頭檔案內關鍵字補全          ctrl-x ctrl-i

根據標籤補全                    ctrl-x ctrl-]

補全檔名                      ctrl-x ctrl-f

補全巨集定義                      ctrl-x ctrl-d

補全vim命令                     ctrl-x ctrl-v

使用者自定義補全方式              ctrl-x ctrl-u

拼寫建議                        ctrl-x ctrl-s

:help compl-generic

:help 'complete'

:help ins-completion

筆記 使用VIM開發軟體專案

學習 easwy的vim專欄 記的筆記。1.在檔案中開啟外部檔案 gf 開啟當前游標處的檔案 ctrl w f 在水平分隔視窗開啟當前游標處的檔案 find 在 path 裡找到檔案並編輯 2.顯示source的檔案 scriptnames 3.tags tag 跳轉到指定的標籤 tags 顯示標籤...

使用VIM開發軟體專案3 vimrc初步

本節所用命令的幫助入口 help compatible help mapleader help map help autocmd 為什麼我的vim這麼難用?不能語法高亮,沒有折行,不能開啟多個視窗多個buffer,不能 為什麼別人用幾個鍵就可以完成乙個很複雜的功能,而我不能?為什麼別人的vim看起來...

已經開發軟體列表

1 通用會員軟體 2 汽車美容會員軟體 3 含進銷存汽車美容會員軟體 4 工業進銷存軟體 5 食品進銷存軟體 6 簡單茶葉會員軟體 7 美容美髮會員軟體 8 含進銷存美容美髮會員軟體 9 花卉會員軟體 10 撞球會員軟體 11 簡單珠寶會員軟體 12 簡單足浴會員軟體 13 美甲會員軟體 14 簡單...