バックスペースを使用して、現在のコマンドを通常モードで変更しますか?


9

ノーマルモードでコマンドを入力すると、タイプミス10dkが発生する場合があります19d。たとえば、タイプしようとすると、誤ってタイプし始める場合があります。

コマンドがまだ完了/コミットされていないので、19d<backspace><backspace>0dkエスケープを押してコマンドを再試行する代わりに、バックスペースを使用して誤ったキーを削除することは可能ですか?

副題:現在のコマンドがコミットされる前に保持するデータ構造のVim用語はありますか?


1
おそらく、これは新しいバージョンの機能として要求することができます!
SibiCoder 2016年


4
AFAIKは不可能ですが、これらのシーケンスは短いので、そのような機能がどのような利益をもたらすかはわかりません。シーケンス全体を再試行する必要がある場合、少なくとも、そのような間違いがなくなるまでシーケンスを繰り返すように「強制」されます;)(つまり、繰り返しビルド文字!しゃれが意図されています)。
VanLaser 2016年

1
@VanLaser Vimmerの最悪の悪夢は何かを繰り返すように「強制」されています;)また、私はタイピングをしゃぶり、空のキーボードを持っているので、正しく理解する前にコマンドを256回混乱させることは珍しくありません。
HellaMad

4
悪いタイピストが空のキーボードを使用すると、何が問題になるのでしょうか?
romainl 2016年

回答:


3

これを行う方法はなく、通常はありません。通常モードのコマンドは一般的にかなり短く、Esc混乱した場合はキャンセルできます。

考えられる回避策は、:normalコマンドを使用することです。これによりプロセスが長くなりますが、たとえば:normal 10jコマンドラインに10j入力すると、通常モードで入力した場合と同様にVimが実行されます。(を参照:h :normal

これらの行を次の行に追加することもできます.vimrc

nnoremap <F4> :call NormalModeCommand()<CR>

function! NormalModeCommand()
    let command = input("Normal command: ")
    execute "normal " . command
endfunction

それらはF4、関数を呼び出すマッピングを作成します(ただし、ここでは何でも使用します)NormalModeCommand()

この関数を使用すると、コマンドラインに文字列を入力して、入力した文字列を通常モードのコマンドとして実行できます。コマンドラインに文字列を入力すると、他のすべてのコマンドと同じように修正できます。もちろん、それは理想的ではありませんが、Vimはそうすることを意図していません。

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