2015-12-08

linuxのvimでクリップボード

先日コンパイルした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の内容が影響し合わないことがわかる)


ようやく把握した。

No comments:

Post a Comment