質問: 'o'コマンドを使用するたびにvimが1秒遅れるのはなぜですか(上の新しい行を開いて挿入します)? ほとんどのコマンドを使用すると、すぐに有効になります。ただし、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動作します。