macのvimでヤンクができない時の対処法

はじめに

いつもは自宅のデスクトップを使っているのですが,急遽帰省したのでMacBookProで作業する必要がありました.
そこでデスクトップの.vimrcをmacにscpでコピーして使おうとしたところ,ヤンクが正しく動作しなかったのでその対処法になります.

症状

いつもはShift+vで行全体をビジュアルモードで選択してyでヤンクする,ということを僕はよくやります.
この時に,「選択はできるものの正しくヤンクされず,pで貼り付けようとするとクリップボードの中身が貼り付けられてしまう」ということが起きました.
つまり,「ヤンクの内容がレジスタに反映されないが,ただしクリップボード との連携はできている」ということです.

解決法

もともと僕の.vimrcには以下の記述がありました.

set clipboard=unnamedplus

clipboardオプションにunnamedplusを設定するとLinuxクリップボードとの連携をすることが可能になります(もちろんvimがclipboardに対応していることが前提ですが).
ちなみに対応しているかどうかは,

$ vim --version | grep clipboard 

で+clipboard(対応している)となっているか-clipboard(対応していない)となっているかで確認できます.
で,これを以下のように変更しました.

set clipboard=unnamedplus
set clipboard+=unnamed

これにより,unnamedplusの後ろにunnamedが追加されます.
通常,Linuxではunnamedplusは「Ctrl+vでのペースト」に,unnamedは「中クリックでのペースト」に対応することになります.
Macでの挙動は詳しく調べていないのでわかりませんが,上のようにすると「Ctrl+vでペーストが可能かつヤンクがレジスタにしっかりと反映される」というような想定していた挙動ができるようになりました.

終わりに

あくまでも応急処置を忘れないように書き起こした記事になります.
しっかりと原理を理解したければ,上の内容を鑑みた上で自分で調べてみてください.
一助になれば嬉しいです.