Neovimでクリップボードとうまく連携したい。+もしくは*レジスタでコピーできるはずだと思ってたけど、うまく行かない。だから、設定が必要みたいだ。
nvimはシステムのクリップボードと直接連携していないそうで、シェルコマンドを通じてクリップボードを利用しているみたい。
以下が対応しているclipboardのツール。
- pbcopy, pbpaste (macOS)
- wl-copy, wl-paste (if $WAYLAND_DISPLAY is set)
- waycopy, waypaste (if $WAYLAND_DISPLAY is set)
- xclip (if $DISPLAY is set)
- xsel (if $DISPLAY is set)
- lemonade (for SSH) https://github.com/pocke/lemonade
- doitclient (for SSH) https://www.chiark.greenend.org.uk/~sgtatham/doit/
- win32yank (Windows)
- termux (via termux-clipboard-set, termux-clipboard-set)
- tmux (if $TMUX is set)
こちらをインストールすれば良い。どれをインストールすればいいだろうか。そもそもWaylandとはなんだろう、と思って調べてみたら、どうやらX11を代替するような立ち位置にあるものらしい。今使っているのはX Window Systemなので多分関係ないな。でも、ちょっと面白い。何が違うんだろう。
ちょっと寄り道
Waylandは特にグラフィクス周りだけについての_アプリケーションとハードウェア間の通信_を効率化させるらしい。X Window SystemではX Serverを通じて、ウィンドウマネージャー・コンポジッターを経由して描画するのだけれど、Waylandではクライアントが直接Waylandに描画を依頼することができるらしい。それが、プロトコルを設定する利点ということかな。
閑話休題。
まあ、このシステムはX Window Systemを利用しているので、xclipというアプリケーションをインストールしようと思う。
sudo pacman -S xclip
そして、init.vimに以下の項目を設定すれば終わり。
set clipboard=unnamedplus
この項目は、デフォルトで必ずシステムのクリップボードを利用するための設定項目のよう。明示的に+や*レジスタを利用することで、レジスタに対する感度を高めるようにneovimを使ったほうが良いかな、とも思ったけれど、やはりデフォルトでクリップボードを使えたほうが良いなあ〜と思う。
たったこれだけだけど、vimのクリップボードは奥が深いな。例えば大文字レジスタで追記ヤンクできる、みたいなこともあるし、効率化に限度はないというか夢が広がるな。