<Esc> Oのスピードバンプ(標準に挿入してカーソルの上に新しい行を挿入)


16

多くの場合、挿入モードのときにヒットEscして通常モードに入り、すぐにヒットOしてカーソルの上に新しい行を開始し、そこで挿入モードに入ります。

しかし、私がそれをするときO、目に見える応答がある前に私が打った後1秒の遅延があります。私は、新しいテキストは文字の特定のセットのいずれかで始まる場合、その1秒の遅延中に新しいテキストを入力し始めるさらに場合(例えばjkmno)、私はしませんでした他のいくつかの操作の途中で終わります多くの場合、混乱を引き起こしますが、その時点で、元に戻してやり直し、元に戻すとやり直さなければならないことを意図しています。

その不快感を避けるために、を入力するたびに1秒間一時停止する習慣をつけましたO。しかし、これは私を遅くし、そうでなければ私がするであろうvim速度の悪魔になることを防ぎます。

これは何が原因ですか?修正または回避策はありますか?

回答:


15

これは端末でのみ発生しますが、GVIMでは発生しません。その理由は、Vimは個々のタイプのキーと、同じキーで始まるANSIエスケープシーケンス(つまり^[O...<Esc>その後に続くO)を区別できないためです。

:help 'timeout'(および次のオプション)ですべての基礎となる複雑さについて読むことができます。また、問題を軽減する推奨構成もあります。

:set timeout timeoutlen=1000 ttimeoutlen=100

3
使用することもできset noesckeysます。ただし、これには、挿入モードで矢印キー(およびおそらく他のいくつかのキーも)が無効になるという副作用があるため、すべての人に適しているわけではありません。
マーティントゥルノイ

2
@Carpetsmoker「set noesckeys」について...これは機能しますが、挿入モードの場合のみです。最初は挿入モードになっていると言っていました。ただし、通常は通常モードから<Esc> Oを実行することもよくあります(主に挿入モードと通常モードのどちらで起動するかが100%わからない場合)。
ドンハッチ

1
@DonHatchは:nnoremap ^[O O、を使用^[して入力できます<C-v><Esc>(として表示される場合もあります<1b>)。
マーティントゥルノイ

5

回避策として、の代わりに +をESCO使用します。+の一つのコマンドのための通常モードでプットあなたは、それが行われたときに挿入モードに戻ります。ControlOOControlO


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.