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 なんですが、CUI の Vim の場合はクリップボード関連の機能が使えないとどこかで読みました。
実際
: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はどうなるんだろう。
誰かできたらでいいので教えてください。