vim ヤンクとクリップボードまわり
意図しない文字列がレジスタへ格納される
vimでコピペの作業をする場合、どの操作をしたら、どの文字列がレジスタに格納され、クリップボードに格納されて、というのがわからなくなる時がある。
特に矩形選択時の置換書き換え、置換貼り付けなどしたあと、次に貼り付けしたいところでペーストすると「あれ?」ってなることが、僕は度々あった。
それを解決したい。
今回の.vimrcの仕様
以下を今回の.vimrcの仕様としよう。
.vimrc クリップボードと置換書き換え(貼り付け)
" クリップボードに無名+レジスタを使用 set clipboard=unnamedplus " ビジュアルモード時の置換貼り付け vnoremap <silent> p ""d"+P " ビジュアルモード時の置換書き換え vnoremap <silent> c ""c " 以下の設定はお好みで。 inoremap <silent> <C-v> <C-r>+ inoremap <silent> <C-p> <C-r>+
とりあえずこれで置換書き換えとかでクリップボードを汚されずにすむ。
「""d"+P」は苦肉の策と言える。
「""c」みたいにシンプルにシンプルに書く方法はないのだろうか?
ちなみに、僕の環境はLinuxBean14.04上でvimを利用しているので、clipboard=unnamedplusとしている。
WindowsやMacOSX環境の方はclipboard=unnamedでもいいかも。
その場合、置換貼り付けの「""d"+P」は「"ad"+P」とかにして、違うレジスタを使用しなければならない。