Humanity

Edit the world by your favorite way

Vimのクリップボードの扱い +レジスタ, *レジスタ

Mac の Vim でレジスタの内容をペーストボードに入れる - by edvakf in hatena
id:edvakfさんのこの記事で気になって環境ごとの+レジスタと*レジスタの扱いについて調べてみたら、
:help registersの「7. 選択領域用レジスタ "* と "+ と "~*1」に書いてあった。

7. 選択範囲レジスタ "* と "+
これらのレジスタは、GUIで、選択されたテキストを蓄えたり取り出すために使われる。

quotestar quoteplus を参照。クリップボードが利用できないときは、無名レ

ジスタが代わりに使われる。 Unixでは|+xterm_clipboard|が有効になっているときだ
クリップボードを利用できる。{Vi にはない}

Note "* と "+ に区別があるのは X11 システムのみであることに注意。違いについて
は |x11-selection| を参照。MS-Windowsでは "* と "+ は実際には同義で、クリップ
ボード |gui-clipboard| を使用する。

X11システムでは*レジスタと+レジスタを区別するけど、Windowsだと同じとして扱う。
MacVimなんかだと冒頭のid:edvakfさんの記事のコメント欄によると

MacVim ではなくターミナルの Vim なんですが、CUIVim の場合はクリップボード関連の機能が使えないとどこかで読みました。

実際
:echo has('clipboard') -> 0
でした。

また、* レジスタは読み出し専用みたいな気がします。

:echo @*
はエラーになりませんが
:let @* = @0
はエラーになります。
E354: Invalid register name: '*'

'+' も然りです。

http://d.hatena.ne.jp/edvakf/20100512/1273697666#c

Linux(Ubuntu)だと端末でもhas('clipboard')は1になった。
MacだとGUIの場合*2はどうなるんだろう。
誰かできたらでいいので教えてください。

*1::help registers@enだと「7. The selection and drop registers "*, "+ and "~」

*2:-gつけて起動した場合