Vim/Neovim で OS のクリップボードを連動させる (clipboard, unnamed, unnamedplus)

Vim/Neovim のデフォルト設定では、y でテキストをヤンク(コピー)したときに、OS のクリップボードにテキストの内容がコピーされません。 別のアプリ上で Ctrl+C でコピーした内容も、Vim の p でペーストすることができません。 これでは不便なので、多くの場合は次のように OS のクリップボードと連動させます。

Vim (.vimrc) や Neovim (init.vim) の場合
" OS のクリップボードと連動させる
set clipboard+=unnamed,unnamedplus
Neovim (init.lua) の場合
-- OS のクリップボードと連動させる
vim.opt.clipboard:append({ "unnamed", "unnamedplus" })

細かい説明をすると、unnamed というフラグは * レジスターとの連動、unnamedplus というフラグは + レジスターとの連動を意味するのですが、通常は上記のように両方とも設定しておけば問題ありません。

  • unnamed(* レジスター) … 主に Linux OS においてマウスで選択したテキスト(選択クリップボード)の内容を、Vim の p で貼り付けられるようにします。
  • unnamedplus(+ レジスター) … 一般的な OS における Ctrl+C 操作でコピーしたテキスト(通常のクリップボード)の内容を、Vim の p で貼り付けられるようにします。また、Vim 側で y でヤンクした内容が、OS 側のクリップボードにコピーされるようになります。