Help us understand the problem. What is going on with this article?

vimのビジュアルモードでペーストした際にヤンクさせたくない

More than 1 year has passed since last update.

経緯

vimのvisualモードで貼り付けを2回以上繰り返したいとき、1回目のペーストをヤンクしてしまうため、2回目のペーストが上手くいかない…というときの対応メモです。

解決方法

色々試しましたが、現時点ではこの方法を採用しています。

vnoremap p "_dP

解説すると、ヴィジュアルモードの際は、pを、ブラックホールレジスタへの削除、前方貼り付け、にマッピングを変える、という設定です。
これにより、ヴィジュアルモードでペーストした際は、ヤンクしないようになります。

他の候補

以下でも概ねのことが実現できます。

vnoremap p "0p

これはビジュアルモードのときのpasteに関しては、0番レジスタを使う、という指定。
ビジュアルモードで選択貼り付けした場合、選択テキストの削除→無名レジスタの内容を挿入、という動きになっています。削除は0番レジスタを更新しないため、0番レジスタには前回ヤンクした内容が残っている。その内容を使う、という解決方法です。
ただし、上記動きの影響で、削除した内容を貼り付けたい場合、貼り付けることができない。この問題は人によってはほとんど影響が無い気もしますが、個人的には少し違和感を感じたため、採用しませんでした。

おまけ

この記事を書くために覚えたレジスタ関連のコマンド。

:reg

レジスタを参照する。

vim -i NONE

vimをviminfoを使用せずに起動する。レジスタが空の状態で起動できる。

参考

https://superuser.com/questions/321547/how-do-i-replace-paste-yanked-text-in-vim-without-yanking-the-deleted-lines

synchro-food
「飲食店.COM」「求人@飲食店.COM」など飲食店経営者を支援するWebサービスを提供しています
http://www.synchro-food.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした