WORDの完了


13

<C-p>そして<C-n>、現在のドキュメント内で見つかった単語の完了を可能にします。

私はいくつかのメモを取り、発言{0,1}^n(E,D)何度も書いています。これらは、いくつかの単語で構成される単語です。

<C-p>and <C-n>(または他の関連ins-completionコマンド)でWORDを完了する方法はありますか?


1
:abbreviate代わりに使用した方が良い場合があります。たとえば、:ab 01n {0,1}^nコマンドを発行します。その後、01n挿入モードで独立した単語として入力するたびに、に展開され{0,1}^nます。
200_success

@ 200_success、ありがとう。私は略語を考えていましたが、それでも可能かどうか知りたかったins-completionです。
ゴンサロリベイロ

回答:


5

挿入モードの完了 Ctrl-n

独自の関数(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多くのファイルが含まれており、他にバリエーションがないとしましょう。それは少し指を伸ばして入力するので、単にを入力する01nmyvalue、またはに展開する必要がありますが、または単語が単独である{0,1}^n場合のみです(つまり、たまたま別の単語内に表示される場合は、それを変更)。01nmyvalue

nviでは、次のことができます:abbrev 01n {0,1}^n。Vimでも同じことができますが:iabbrev 01n {0,1}^n、拡張を挿入モードのみに制限するために使用することをお勧めします。

次に、テキストがある場合(ここで|カーソルを表します)

We find that the value 01n|

そして、あなたはカーソルを押すEscSpaceTabまたは他の方法でカーソルを移動し、テキストが置き換えられ、あなたが持っています(スペースを使用する例)

We find that the value {0,1}^n |

中断することなく入力を続けることができます。

これは通常、一般的なタイプミスを自動修正するために使用されます(たとえば、「teh」を「the」に変更する)が、ユースケースにも同様に役立ちます。


私には、:set iskeyword+={,},,,(,),^期待どおりに動作しているようです。
カールYngveLervåg15年

1
確かにそうです。前回試したとき、Vimは構文エラーだと言っていました。それはどこか別の場所にあったに違いありません。私の答えを更新します。
ジョン・オム。

@ JohnO'M。abbreviateこの仕事にどのように適しているかについての参照を追加できますか?
ゴンサロリベイロ

@GonçaloRibeiro完了しました。役に立てば幸いです。
ジョン・オム。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.