0

vim で編集するときに、マークダウン ファイルに多数の@tags(例: @sea_ice、 )を植えたいと思います。@models現在、SuperTab を使用して通常の単語をタブで補完しています。ただし、シンボル<tab>の後にヒットすると、すべてのリストが表示されるのではなく、現在のコンテキストで見つかったすべての単語の長いリストが表示されます。@@tags

SuperTab ではカスタム コンテキスト定義が可能であることに気付きましたが、私は vim スクリプトについて何も知らず、ドキュメントには 2 つの例しか含まれていないため、自分でスクリプトを作成することはできません。

少し検索した後、おそらく新しいカスタム omni complete 関数、特に関数の後半を定義する必要があると思います。

function! TagComplete(findstart, base) if a:findstart " locate the start of the word let line = getline('.') let start = col('.') - 1 while start > 0 && line[start - 1] != '@' let start -= 1 endwhile return start else " find @tag let res = [] ???? ???? endif return res endif endfun

これは私が取り組んでいるコードです。しかし、それをテストする方法や、どこに置くのが正しいのかわかりません。助けてください

ありがとう

4

2 に答える 2

0

私は SuperTab を使用したことがないので、このソリューションをそのプラグインで動作させることができるかどうか、またどのように動作させるかはわかりませんが、組み込みの手動補完を使用すると非常に簡単です.

  1. まだ存在しない場合は、次のディレクトリ構造を作成します。

    ~/.vim/after/ftplugin/
    
  2. ~/.vim/after/ftplugin/markdown.vim、次の行を追加します。

    setlocal define=@
    
  3. マークダウン バッファで、 を入力@して押し<C-x><C-d>ます。

    ここに画像の説明を入力

:help 'define'およびを参照してください:help ctrl-x_ctrl-d

于 2016-04-04T22:01:31.963 に答える