前提
+clipboardがついていない場合(vim --versionで確認できます)は、vimをコンパイルしましょう。コンパイル楽しい!!
やったこと
ターミナル上のCUIのVimでyankした時、それがクリップボードに入るようにした。
結論
~/.vimrcに次の2行を追加
set clipboard& set clipboard^=unnamedplus
説明
unnamedplus
vimからclipboardを使うには、clipboardオプションにunnamedplusを含めます。
調べているとunnamedを加えると書いてあるものも多いですが、Linuxではunnamedだと中クリックでペーストされるものに、unnamedplusだとC-vなどでペーストされるものになります。
そのため、Linuxでyankした文字列をC-vなどで貼り付けたい場合、unnamedplusを加える必要があります。
set clipboard&
これの意味は、clipboardオプションの値をデフォルト値にセットする、という意味です(:help set-default)。
これがないと、vimrcをリロードした時に、無限にunnamedplusオプションが増えていってしまいます。
set clipboard^=unnamedplus
これでclipboardオプションにunnamedplusを追加しています。
ポイントは、^=です。ここに+=を使いたくなってしまいますが、それだと正しく動きません。
^=では値が前に、+=では値が後ろに入ります(:help :set^=, :help set+=)。
前に入れなければいけない理由は、clipboardのデフォルト値にあります。
clipboardオプションのデフォルト値はautoselect,exclude:cons\|linuxです(:help 'clipboard')。
この、excludeが曲者で、excludeの後ろは全てexcludeのためのパターンとして認識されます(:help clipboard-exclude)。
そのため、unnamedplusは^=を使ってデフォルト値の前に追加する必要があります。
これに気が付かなくて、手元の環境ではクリップボードが使えないものかと思ってました…
まとめ
helpはちゃんと読もう