vim的自動完成提供了多種方法:
1. 整行 |i_ctrl-x_ctrl-l|
2. 當前檔案內的關鍵字 |i_ctrl-x_ctrl-n|
3. 'dictionary' 的關鍵字 |i_ctrl-x_ctrl-k|
4. 'thesaurus' 的關鍵字,同義詞風格 |i_ctrl-x_ctrl-t|
5. 當前和標頭檔案內的關鍵字 |i_ctrl-x_ctrl-i|
6. 標籤 |i_ctrl-x_ctrl-]|
7. 檔名 |i_ctrl-x_ctrl-f|
8. 定義或巨集 |i_ctrl-x_ctrl-d|
9. vim 命令 |i_ctrl-x_ctrl-v|
10. 使用者定義的補全 |i_ctrl-x_ctrl-u|
11. 全能 (omni) 補全 |i_ctrl-x_ctrl-o|
12. 拼寫建議 |i_ctrl-x_s|
13. 'complete' 的關鍵字 |i_ctrl-n|
這裡只需要用到vim的字典補全就能實現自動提示任意單詞,首先準備乙個比較全面的英文詞典:
排序是為了vim快取這個詞典時更節省時間.將排序後的檔案儲存到$vimruntime/dict/english.dic,當然檔名任意取,建議這樣命名.
接下來,你有兩種方法實現自動補全英文單詞,分為手動和自動的,自動需要借助neocomplcache 這個外掛程式.
如果只需要對txt型別檔案提示單詞,建立乙個ftplugin/txt.vim檔案即可,內容包含:
setlocal dictionary=$vimruntime/dict/english.dic "set dict file
setlocal complete+=k "set complete option
實際上你可以對所有檔案都設定這個詞典補全,將這一行加入到.vimrc即可,注意多了個+號
setlocal dictionary+=$vimruntime/dict/english.dic "set dict file
這也許會在編輯**的時候造成混亂,提示不需要的單詞.
安裝好neocomplcache後做如下設定:
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_enable_smart_case = 1
let g:neocomplcache_enable_camel_case_completion = 1
let g:neocomplcache_enable_underbar_completion = 1
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '/*ku/*'
let g:neocomplcache_dictionary_filetype_lists =
其中最重要的是設定字典檔案:
let g:neocomplcache_dictionary_filetype_lists =
對txt型別檔案應用字典,neocomplcache會在開啟txt檔案後快取該字典並自動彈出完成選單.
用neocomplcache有兩個問題仍需解決:
首次開啟txt檔案的時候不能自動快取詞典,也就不能自動提示,需要手動設定檔案型別,提交:set ft=txt這個命令後才會快取.
每個vim程序只需要快取一次,大概耗時5秒鐘,視不同機器而定.
當然第二次開啟txt型別的檔案時能自動快取,很奇怪的問題.
快取後的檔案順序有問題,而非公升序. 目前正在和作者聯絡以解決.
最後看看效果圖:
輸入archit
按tab鍵選擇需要的單詞:
java英文單詞
platform pl tf m n.平台 standard edition標準版 enterprise ent praiz n.企業 bytecode n.位元組碼,位元組 verifier n.檢驗機 modifier m difai n.修飾語 attribute tribju t vt.to...
word排版之長英文單詞自動換行
問題 在word中輸入比較長的英文單詞,如果單詞超過了行尾,則會自動換行,這樣就形成了上一行剩下的字數很少,如果是兩段對齊,則字元間距會變大 如果左對齊,則會出現右邊空出一大行。解決方法 1 選擇格式 段落 中文版式,選中 允許西文在單詞中間換行 但是這種方法不能自己新增分隔符。如圖。2 使用wor...
python 統計 英文 單詞
import sys,os,re def count words text num char text re.sub w text number text re.sub 0 9 text shrink whitespace text re.sub s text return text.count d...