単一の文字を挿入してから挿入モードを終了する方法はありますか?


10

テキストを調べているとき、たとえば特定の単語や引用符などの周りにバッククォートを追加しているとき、挿入するたびにEscキーまたはCtrl- [キーを押す必要があるのはイライラします。挿入(および追加)は異なるため、.あまり役に立ちません。

r単一の文字の後に通常モードに戻るようなものはありますか?ただし、置換モードの代わりに挿入モードを使用しますか?


3
より意味のある方法でテキストを操作するには、おそらくvim-surroundプラグインの使用(または拡張)を検討する必要があります。
VanLaser、2015年

回答:


11

ない場合(私は見ていません)、このマッピングを使用できます.vimrc

nnoremap <C-I> i <ESC>r

それはi、nsertsスペースを置き、ESC類人猿、および単一文字を開始replaceを。これはにマッピングされCtrlIます。

これはハックであり、文字を入力する前にエスケープを押すとぶら下がるスペースが残りますが、何もしないよりはましです!


1
悪くはありません...誰もそれより良いものが思い付かない場合は、おそらくそれを使用します。:)
ワイルドカード

2
@ワイルドカード私が実際にこのユースケースにどれほど遭遇したのか、気づかずに理解していませんでした。良い質問です:)自分のvimrcにも追加しました。
Qix-モニカは2015年

2
私は一日の大半をマークダウンの修正に費やしました。イタリック、インラインコード、ヘッダーのインデント、ハイパーリンク...それらすべてに1文字挿入されます。:)実際にはあなたの解決策は完璧です。今から使い始めます。
ワイルドカード

2
短所:.コマンドで繰り返すことはできません。:(
ワイルドカード

1
@ワイルドカード残念ながら、少し調べた後、.を使用していない限り、手動でリピートブランチを作成する方法はありませんrepeat.vim
Qix-モニカは

0

(カーソル位置ではなく)単語の最後に文字を挿入するには、次のようにします。

nnoremap <C-a> a <ESC>r

これはにマップされCtrl + aますが、他の何にでもマップできます。

私は.vimrcちょうど私の中に2つを持っているので、私はそれほど慌てる必要はありません:)

" Insert char at cursor position
nnoremap <C-i> i <ESC>r
" Append char after cursor position
nnoremap <C-a> a <ESC>r
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.