読者です 読者をやめる 読者になる 読者になる

【Vim】【Mac】Vimのヤンクでクリップボードにコピーする

・普段Vimを使っていて、異なるセッションで起動しているVim同士でコピペしたい時
Vimから、どこか別のウィンドウにコピペしたい時


対応策として、

  1. 毎回コマンドで頑張る
  2. プラグインを入れる
  3. vimrcに設定する

があります。



Hack #126: クリップボードを利用する(http://vim-users.jp/2010/02/hack126/)
vimエディタからクリップボードを利用する(http://nanasi.jp/articles/howto/editing/clipboard.html)

ふつうのテキストエディタであれば クリップボードにあるテキストがペーストされ、 コピーしたテキストはクリップボードに保存されます。

しかしVimではコピー/ペーストされるテキストは レジスタと呼ばれるVim内部の領域から読み書きされるため、 そのようにはなっていません。

1.毎回コマンドで頑張る

yでヤンクをするまえに"*を追加してヤンクすることで、クリップボードにコピーできます

2.プラグインを入れる

yanktmp.vim


いれた後に、キーマッピングを変更すると、選択した状態でsyをするとコピー
別のセッションなどでspするとペーストすることができます。

ただ、これはあくまでVim間のみのようなので注意が必要です

このプラグインについての説明などのサイト

http://d.hatena.ne.jp/secondlife/20060705/1152110844

3.vimrcに設定する

set clipboard=unnamed,autoselect

をvimrcに追記しておけば、ヤンクしたときに自動でクリップボードにコピーされます。


詳しくは参考サイトのHack #216から。unnamedとautoselectの違いも載っています。



ここで注意



このset clipboardが使えるのは

vim --version | grep clipboard


をしたときに

-clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
 -xterm_clipboard -xterm_save 

のように+clipboardになっていないと使えません。


GVimだとデフォルトで大丈夫らしいのですが、私のVimだと-になっていました。

対応策

リビルドして+clipboardにします。


参考サイトは
vimruby用にビルドしなおしてvim-rubyを使う(http://d.hatena.ne.jp/mirakui/20090506/vimruby)


実は、vim-rubyに対応するために、+rubyにしようとリビルドしたら、+clipboardになっていました。

sudo port deactivate vim
sudo port install vim +multibyte +ruby

sudo port deactive vimをしたらエラーが出たので、とりあえずsudo port install vim +multibyte +ruby


結構時間がかかるので注意です。


リビルド後、vim --versionで確認して+clipboardになっていたら成功です!
ヤンクしたものが、Vim以外のところでも貼りつけられるようになっています。