linuxのvimでクリップボード


[tag:]

先日コンパイルしたlinuxのvimを使っていて、 他のアプリケーションからコピーした内容はpできるのに vimでヤンクした内容がペーストできないと思っていたら、 どうやら"*レジスタの他に"+レジスタがあるらしい。

:help x11-selectionによれば、 X11のglobal storeにはselectionとcut-buffersの2種類があるらしく、 selectionはアプリケーション毎に保持されるのに対し、 cut-buffersはXサーバ自体に保持される点のみが異なるようだ。

selectionの中身はペースト側のアプリケーションからの要求が あったときにのみ渡され、 cut-buffersの中身は即座にXサーバからアクセス可能になるらしい。

さらに、:help quoteplusを読む。
X selectionsにはPRIMARY、SECONDARY、CLIPBOARDの 3種類があり、PRIMARYはvimではヴィジュアルモードに相当し、 CLIPBOARDはカット、コピー、ペースト操作用とのこと。

vimでは、PRIMARYには"*レジスタを、CLIPBOARDには"+レジスタを 使っているようだ(SECONDARYはill-definedであり、vimでは 使っていないとのことである)。
この項のExamples:を読むと、次のことがわかる。
 ・vimのヴィジュアルモードで選択したテキストは、   他アプリケーションにおいて中ボタンで貼り付け可能  ・他アプリケーションで選択したテキストは、   vimにおいて中ボタンで貼り付け可能  ・vimで"+レジスタに入れたテキストは、   他アプリケーションのペースト機能で貼り付け可能   (このとき、テキストを選択していた場合は上書き可能であり、   PRIMARYとCLIPBOARDの内容が影響し合わないことがわかる)

ようやく把握した。