vimとX11、UbuntuのC-cクリップボードの話(vimのクリップボード共有について)
【経緯】
guake でコンソールを開き、screen で3ペインにした後、複数 vim を起動します。裏ではブラウザや2chブラウザが開いています。
※gnome-screenshot --window
その際、ブラウザと複数のvim間のコピーが問題になります。
vim でヤンクを使うと、無印レジスタに保存されるので共有は
できないですし、毎回コマンドを利用するのは面倒ですし、ブラウザ
からのコピー C-c、ブラウザへの貼付け C-v、も行いたい訳です。
【vim のビルド】
vim は apt-get などで取得するとデフォルトで clipboad が使えず、
オプションを付加しビルドし直すことで clipboard ifjdfjasdfkad
djafsdfjadが有効になると
いう記事を読み、試してみることにしました。*1
*2
name -a
Linux ubuntu 2.6.32-43-generic #97-Ubuntu SMP Wed Sep 5 16:42:26 UTC 2012 x86_64 GNU/Linuxcd /tmp
sudo su
apt-get install hg ncurses-dev
hg clone https://vim.googlecode.com/hg/ vim
cd vim/src
./configure --with-x --with-gnome --enable-xim --with-features=big --enable-multibyte
make
make installvim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 14 2012 23:13:18)
適用済パッチ: 1-691
〜〜〜
+clipboard
〜〜〜echo "set clipboard=unnamed,autoselect" >> ~/.vimrc
と、まぁ、ここまでは良かったのです…
【問題】
Ubuntuではクリップボード C-c, C-v で用いるレジスタが "+" であった
ということです。*3
どうなるかというと、vim のクリップボードを使えるようにするという
のはレジスタ "*" を想定しているようで、ubuntu で vim のヤンクを使って
も、C-c, C-v とはクリップボードを共有できないようなのです…*4
※ネットでは Windows や Mac の同様の問題が見つからないので ubuntu
だけの問題?
そして面白いことに、マウスの middle click(マウスの中ボタン)は
X11 のクリップボードレジスタである "*" 使うのです。
※いや gnome も X11 だけど…
【結論】
vim 同士は、y・p。
vim => browser は、y・middle、または:y+・C-v 。
browser => vim は、C-c・C-S-v、または範囲指定・p 。
間違いがあればコメントで一報いただけると嬉しいです。
またはより良い方法を;-)
…結論の方法でも複雑ですか?いや、vim愛があれば大抵は
どうにかなりますから。
追記
友人より下記のオプションの話を聞きました。
set clipboard=unnamedplus,autoselect
これですと期待する動作になりました。
どちらにしても利用するとクリップボードを2つ利用
できるので、皆様もこれを機にvimを使ってみては:)
以上。
*1:http://d.hatena.ne.jp/sea_mountain/20110421/1303362772
*2:http://d.hatena.ne.jp/pneumaster/20081213/p1
*3:http://unix.stackexchange.com/questions/12535/how-to-copy-text-from-vim-to-an-external-program
*4:http://www.markhneedham.com/blog/2011/02/14/vim-copying-to-and-retrieving-from-the-clipboard/