質問: vimでは、コピーして、間違っているところを消して、貼り付け、という操作は意外と面倒臭いのでしょうか。 vimの一般的な操作方法を教えていただければ幸いです。 困った場面 ----- 例えば、 vimで矢印の前から後に編集したいとします。 ``` かきくけこ あいうえおさしすせそ ↓ かきくけこ あいうえおかきくけこ ``` 1.「かきくけこ」をコピー 2.「さしすせそ」を削除 3.その場所に貼り付け という操作を行おうと思いましたが、 2の削除時にx(一文字削除)やde(単語削除)を行うと、コピー情報がうわがかれます。 それに対して、以下の3つの方法を考えつきましたが、 「コピー情報を上書きしないように削除する」というのはvimではあまり行われないのでしょうか。 ・削除する代わりに範囲選択をして、上書きする形で貼り付ける ・設定をいじって削除時にコピー情報の上書きを防止する (ddからのpはよく使うので、できればこれは採用したくありません) ・コピーするより前に貼り付け先の間違いを消しておく
回答: 1. かきくけこをコピー: yiw 2. さしすせそをヴィジュアルモードで選択: jfさvw 3. 貼り付け: p これで意図通りの挙動ですね。 なお、この操作後レジスタにはさしすせそが入っているので かきくけこを保持したければレジスタ名を指定してそこに入れる必要があるかとおもいます。 「追記」別解を用意しました。 1. かきくけこをコピー: yiw 2. さにカーソルをあわせて大文字Cで編集モードに 3. C-r 0を入力してヤンクの「かきくけこ」を展開 4. エスケープキーで終了 この方法だとさしすせそがヤンクに入ってこないので捗るかと思います。 「追記」また、私がやらかしてしまった場合のリカバリー案を記載してみました。 1. かきくけこをywでコピー 2. さしすせそをdwで削除 3. さしすせそ跡地でマーカーを設置(mm) 4. かきくけこに移動して再度yiw等としてコピー 5. `mを入力してさしすせそ跡地へ移動して貼り付け 何のことはないという感じですけど、よくやらかすのでマーカーの設置は覚えました。