回答:
独自の関数(omnifuncなど)の作成以外でWORD補完を実行できるかどうかはわかりません。ただし、文字と一致する単語の拡張を気にしない場合は、それらの文字を「iskeyword」に追加できます
たとえば、私の 'iskeyword'はデフォルトで
iskeyword=@,48-57,_,192-255
次に、それに加えて上記の追加文字を設定します
:set iskeyword=@,48-57,_,192-255,{,},,,(,),^
この追加{
、}
、,
、(
、)
、と^
単語を構成する文字(すでにやったことに加えて)
その後、入力が{
Ctrl-n完了します{0,1}^n
(指定した2つの例のみを含むファイル内)
注::set iskeyword+=
次のように、追加のものだけでaを実行することをお勧めします。
:set iskeyword+={,},,,(,),^
この方法では、既存の設定に新しい文字を追加することで、キーワードを構成する他のものはすべて残します。
元の質問の一部ではありませんが、nviまたはVimの略語機能を使用することも同様の機能です。キーワード補完とは異なり、略語は最終テキストのように見える必要はありません。また、キーワード補完とは異なり、略語はユーザーが要求したときだけでなく、自動的に展開されます。目標と使用方法によっては、これにより多くの入力を節約でき、完了を求めることを中断せずに多くのテキストを入力できます。
略語は、キーワードの小さなセットに適していますし、事前にそれらを定義できる場合(単語補完のようにテキストからは検出されません)。
略語の背後にある基本的な考え方は、WORDを他のテキストに関連付け、そのWORDの入力をエディターが検出するたびに(つまり、入力したテキストが空白で囲まれ、補完アクションが後に空白を追加するというものです)キーワードまたは挿入モードを終了する)、他のテキストに置き換えられます。
ファイルに{0,1}^n
多くのファイルが含まれており、他にバリエーションがないとしましょう。それは少し指を伸ばして入力するので、単にを入力する01n
かmyvalue
、またはに展開する必要がありますが、または単語が単独である{0,1}^n
場合のみです(つまり、たまたま別の単語内に表示される場合は、それを変更)。01n
myvalue
nviでは、次のことができます:abbrev 01n {0,1}^n
。Vimでも同じことができますが:iabbrev 01n {0,1}^n
、拡張を挿入モードのみに制限するために使用することをお勧めします。
次に、テキストがある場合(ここで|
カーソルを表します)
We find that the value 01n|
そして、あなたはカーソルを押すEscかSpace、Tabまたは他の方法でカーソルを移動し、テキストが置き換えられ、あなたが持っています(スペースを使用する例)
We find that the value {0,1}^n |
中断することなく入力を続けることができます。
これは通常、一般的なタイプミスを自動修正するために使用されます(たとえば、「teh」を「the」に変更する)が、ユースケースにも同様に役立ちます。
:set iskeyword+={,},,,(,),^
期待どおりに動作しているようです。
abbreviate
この仕事にどのように適しているかについての参照を追加できますか?
:abbreviate
代わりに使用した方が良い場合があります。たとえば、:ab 01n {0,1}^n
コマンドを発行します。その後、01n
挿入モードで独立した単語として入力するたびに、に展開され{0,1}^n
ます。