Vimで単語を削除して挿入モードにする方法は?


98

通常モードでCtrl+ Eを押すと、現在の単語の残りが削除され、挿入モードになります。

カーソルの位置(もちろん単語内)に関係なく、単語全体を削除したい。

回答:


164

カーソルが置かれている単語を削除するには、「ciw」と入力して「内部単語の変更」を使用できます。

「inner」コマンドと「a」コマンドはVimで優れています。また、{}ブロック内の「ci {」、または{}文字も削除したい場合は「ca {」を試してください。これらのコマンドを英語に翻訳して覚えやすくするには、「内部の{ブロックの変更」と「{ブロックの変更」を試してください。

http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objectsにあるドキュメント


「caw」は、「ciw」と同じ機能の代わりに使用できます。
Amjith

「caw」と「ciw」は単語全体を置き換えますが、「cw」は現在のカーソル位置から現在の単語の末尾に変わります。
ドリュースティーブンス

jinxed_codersのコメントを思い出させるように、「co {」から「ca {」までの答えを編集しました。私の古いカスタマイズでは、「(a)<>」コマンドを「(o)uter <>」コマンドとして実装しています。
カーリー

19
ciwそして、cawまったく同じではありません。ciw削除言葉だけ、caw同様に末尾のスペースを削除します。
Roberto Bonvallet 2009

5
vimのオブジェクト:helpして、これらの種類の選択の詳細を読んでください。
アーロン

19

フォローアップ質問への回答: viwp

v    -> start visual mode
iw   -> select the 'inner word'
p    -> paste - in visual mode it replaces the visually selected text.

3
これを続けて複数回行うにはどうすればよいですか?貼り付けるたびに、貼り付けた単語でバッファがいっぱいになります。
Ben Gartner

1
@BenGartnerこれはVim Tips wikiで見つかりました:yiw現在の単語をコピーするために使用し、置換する単語の上にカーソルを置き、を使用しますciw<C-r>0。その後、カーソルを次の単語に置き、を使用.して置換をやり直すことができます。
siegi 2013

@BenGartner WORD_AのすべてのインスタンスをWORD_Bに置き換えるだけの場合は、vimのexモードを使用するだけ:%s/a/b/gです。a正確なテキストまたは正規表現を使用bできます。これは、のすべての一致を置き換えるものですa。vimの/モードで正規表現をテストできます。%すべての行で置き換えたくない場合は、行番号または範囲で置き換えます。
Braden Best

8

2番目の質問: bPldw

これにより、現在の単語の先頭に移動し、カーソルの前にデフォルトのレジスタを挿入し、次の文字に移動し(挿入したテキストの末尾を超えて)、残りの部分を削除します言葉。


5
これにより、単語の後のスペースも削除されます。する必要がありますbPlde
0x89

10
いいえ、そうでなければなりませんviwp
aehlke

3

最初の質問についてbcwも動作します。それは「b言葉の始まりへのcこだわり、ハンジオードw」を意味します。しかし、私は考えるciw「を意味し、より思い出深いですcハンゲのinnerのwORD」、ただ1つのステップだけ。

「貼り付けを使用して置き換える」に関する2番目の質問の解決策は"_diwPです。それdelete inner wORDあなたが気にしていない登録のpデフォルトのレジスタの内容をASTE。利点は、汚染されないため、デフォルトのレジスタを何度も貼り付けることができることです。これは少し複雑なので、としてマッピングしますnnoremap ,r "_diwP


2

または、キーシーケンスbdwiを使用して現在の単語を削除し、INSERTモードにすることもできます。


1
を使用bcwして現在の単語の先頭に移動し、単語を変更すると、挿入モードが終了します。
ハンクゲイ

カーソルがすでに単語の最初の文字の上にある場合は、前の単語が削除されます。
Warren Pena

3
@WarrenPenaその場合は、を使用してくださいdwi。DWIはほとんどの州で違法なので、警官が気づかないように注意してください。
ブレーデンベスト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.