ほとんどのコマンドを使用すると、すぐに有効になります。ただし、O
コマンドを使用すると、「O」が現在の文字を約1秒間置き換えた後、現在の文字が戻り、新しい行が挿入されて開かれます。
o
コマンドではそのような問題はありません(新しい行を開く下そして挿入します)。
違いが出る場合は、Ubuntu10.04のGnomeターミナルでvim
からbash
を使用しています。
前に押されたキーがESCの場合、これはESC Oで始まるエスケープシーケンスを生成できるキーがあるためです。たとえば、カーソルキーモードによっては、上矢印キーがエスケープシーケンスESC OAを生成する場合があります。
部分的なエスケープシーケンスが検出された場合、vimは短いタイムアウトを待機して、端末タイプに定義されたエスケープシーケンスの1つに一致する別の文字が受信されたかどうかを確認します。そうでない場合は、文字を個別のキーストロークとして扱います。これをテストするには、行が開くのを待っている間に大文字のAを入力して、代わりに上矢印として扱われるかどうかを確認します。
これを制御するために使用できるいくつかのvim設定があります。 :set ttimeoutlen=100
は、エスケープシーケンスのタイムアウトを100msに変更します。 :set noesckeys
は、挿入モードのときにエスケープシーケンスを送信するキーの認識を完全に無効にします。また、vi互換モードでは、esckeysがオフになっているため、この問題は発生しません。そのため、vim -u NONE
動作します。