やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Vimでペーストするとき削除テキストでなくヤンクしたテキストを貼り付ける方法

あたりまえの期待だと思うのだが、vimはひと手間を要する。

問題

Vimddなどでテキストを削除したあと、pPでペーストしようとすると、なぜか削除したテキストがペーストされてしまう。ヤンクしたテキストをペーストしたいのに!

解決

~/.vimrcに以下の設定を追記する。

nnoremap p "0p
nnoremap P "0P

https://project-p.jp/halt/2012/06/27/011809/

新たな問題

クリップボードにコピーしたテキストがペーストできなくなった!

ノーマルモードp, Pでなく、挿入モードでCtrl+Shift+Vで貼り付けられるが、インデントが崩れる。もはやVimのキーマップではなくターミナルのキーマップと思われる。

この問題も同時に解決する最善の方法はないものか……。新問題のほうが致命的なので、結局、今までどおりに戻すことになりそう。使えねー。

環境

以上。以下蛇足。

コレジャナイ

ググると他にも出てきたが、解決できなかった。

  • d.hatena.ne.jp/pinoyuki/20120425/p1
nnoremap gy "0P
  • mask.hatenadiary.com/entry/2014/06/02/104809
" 削除キーでyankしない
nnoremap x "_x
"nnoremap d "_d
nnoremap D "_D

なぜダメなの? バージョンによる差異? 私はVimScriptについてまったく知識がないため、意味不明の暗号にしか見えない。(pdなどがコマンドっぽいのはわかるけど)

grep置換では解決できない

grep置換すればいいと思うが、しばしばgrep対象にしたくない箇所もある。

もし、ヤンクしたテキストを複数箇所にペーストしたいとき、非常にストレス。ペーストする度に、いちいちヤンクし直さねばならないのだ。カーソル移動もあるので、作業量が加速度的に増えていく。

他の方法は思いつかないので、なんとかヤンクしたのをペーストできるようにしたいが。

次回

そもそもヤンクって何? コピーと違うの? 調べてみる。