vim插件3--dict
功能
vim-dict插件主要用于從本地或者特定伺服器查找相關資料,此功能正常情況下用不上;
vim-dict有一個不錯的功能為從特定的字典檔案中補全文本或單詞;
此外可以用 .dict檔案來實作不同類型代碼的自動補全功能
安裝方法
vim-dict插件是以vim腳本的形式存在,是以隻需要将其下載下傳下來放到相應的目錄即可。具體安裝方法如下:
1)從下面網址下載下傳vim-dict的安裝包,并解壓,得到doc/dict.txt和plugin/dict.vim檔案;
Vim online https://vim.sourceforge.io/scripts/script.php?script_id=4180
Github https://github.com/szw/vim-dict
2)将plugin下的腳本檔案(.vim)和doc下的幫助檔案(.txt)分别拷貝至vim的 plugin和doc目錄
注意:
若初次安裝vim,可能沒有~/.vim目錄,此時需要建立該目錄,并建立doc和plugin目錄;
使用方法
1)dict的基本功能,可以通過 :help dict或者:h dict來檢視,本人暫時很少使用這些基本功能,此處不做介紹;
2)dict的補全功能
作者介紹如下:
Useful tips
On Ubuntu you might want to add system dictionary to Vim:
set dictionary+=/usr/share/dict/words
This will enable the dictionary in the insert mode (CTRL-X CTRL-K). Additionaly it could be useful to add the dictionary to the standard word completions (CTRL-N...) for text and Markdown file types.
即:将/usr/share/dict/目錄下的words字典檔案加入到目前vi中,那麼輸入某個單詞一部分的時候可以按下(CTRL-X CTRL-K)顯示補全的内容,然後使用Ctrl-N及Ctrl-P上下選擇,實作補全功能;
實際使用如下:
假設在~/.vim/dict目錄下建立了一個mydict檔案;
在vi模式下通過 :set dictionary+=~/.vim/dict/mydict 将mydict檔案加入到vim的查找功能中;
輸入模式下輸入 myd然後 按<Ctrl-X><Ctrl-K>就會彈出對應的補全菜單,然後用Ctrl-N及Ctrl-P上下選擇即可實作補全;
效果如下圖所示:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iM0YzN0EWYjJDMzIWOxMGMzYzX1EzM0kDM5IzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
若将 set dictionary+=~/.vim/dict/mydict 放在vimrc中,則會每次打開vi的時候都預設可以使用mydict字典總的内容進行補全;
注意:
使用該方式補全的時候,需要使用<Ctrl-X> <Ctrl-K> <Ctrl-N> <Ctrl-P>等快捷鍵,似乎不太友善,建議使用該功能之前安裝一個autocomplpop,安裝autocomplpop後就可以自動顯示補全内容,上下鍵選擇下拉項了;
詳見 vim插件2--autocomplpop
需要注意的是使用該方式後,隻能加載 dictionary+=中的字典檔案,會導緻其它方法設定的字典檔案無法使用;
3) .dict 檔案的另一種使用方法
通常我們可以從網上下載下傳一些常用的dict檔案,或者自己編輯一份自己的dict檔案,然後用于coding中自動補全,以上方式提供的方法在特定場合存在一定缺陷,現在提供另一種方法将特定檔案類型和特定dict檔案關聯起來,以便于不同類型代碼的補全功能
假定~/.vim/dict目錄下存在如下幾個dict檔案:
c.dict 、php_funclist.dict、css.dict、cpp.dict、scale.dict、javascript.dict
那麼我們可以在vimrc重建立相應加載規則:
au FileType php setlocal dict+=~/.vim/dict/php_funclist.dict
au FileType css setlocal dict+=~/.vim/dict/css.dict
au FileType c setlocal dict+=~/.vim/dict/c.dict
au FileType cpp setlocal dict+=~/.vim/dict/cpp.dict
au FileType scale setlocal dict+=~/.vim/dict/scale.dict
au FileType javascript setlocal dict+=~/.vim/dict/javascript.dict
au FileType html setlocal dict+=~/.vim/dict/javascript.dict
au FileType html setlocal dict+=~/.vim/dict/css.dict
vi打開x.c(注意為c檔案),insert模式下輸入si就會加載目前檔案下的單詞和c.dict檔案下的單詞,如下圖所示:
其中,前4個補全單詞為autocomplpop插件根據目前文檔内容查找的,後面都是從c.dict中查找的;
注意:
使用此種方法進行文法補全的時候,需要關閉2)中的set dictionary方法,對于2)中的 規則若加入到vimrc中,應該在不用的時候注釋掉,需要用的時候再打開;
指令說明:
au FileType html setlocal dict+=~/.vim/dict/javascript.dict
au FileType html setlocal dict+=~/.vim/dict/css.dic
該指令将html類型的檔案和 css.dict javascript.dict檔案關聯起來了,若要将js檔案和以上檔案關聯,隻需要增加如下兩行即可:
au FileType js setlocal dict+=~/.vim/dict/javascript.dict
au FileType js setlocal dict+=~/.vim/dict/css.dict
該方式的好處為可以自由對檔案類型和字典進行關聯,而且可以手動更改dict中補全的内容為自己需要的類型