2016-09-24 8 views
0

私はVIでオートコンプリートに使用された辞書ファイルを持っています。私は検索とオートコンプリートの単語や行に "CTRL + X、CTRL + K"を使用する必要があることを知っています。 DIC 例ファイル:Vi/Vim辞書全体行を取得

xi_x1_a1

xi_x1_a2

xi_x1_a3

xi_x1_a4

xi_x2_a4

VI/Vimのでxi_x1_a6

xi_x1_b

...

私が入力した場合:XI "CTRL + X、CTRL + kは"、そして私が辞書内のすべての行を受信しますカーソル。私の辞書ファイルには多くの行があるので、これは有用ではありません。

"a4、CTRL + x、CTRL + k"のみ入力できますか?次に、オートコンプリート・ラインのカーソルに2つのマッチ・ラインしか得られません。

xi_x1_a4

xi_x2_a4

の助けをありがとうございました。

答えて

1

completefuncを使用する必要があります。これにより、完了したい方法を指定することができます。

あなた~/.vimrcを編集して、のようなもの置く場合:

function! MyCompleteFunc(findstart, base) 
    if (a:findstart == 1) 
    normal b 
    return col(".") - 1 
    else 
    " Hardcoded path to dictionary. You could tweak this to use 
    " whatever dictionary you have set with `set dictionary=` 
    let l:data = readfile("/home/david/mydic.txt") 
    return filter(l:data, 'v:val =~ ".*' . a:base . '.*"') 
    endif 
endfunction 

set completefunc=MyCompleteFunc 

それはトリックを行う必要があります。 X

次にあなたが CTRLを使用することができます + CTRL +U

詳細は:help i_^x:help 'completefunc':help complete-functionを参照してください。

関連する問題