Vimでクリップボードを使う

.29 2010 環境構築 comment(2) trackback(0)
今まではWindowsのGVIMを使っていたのでCtrl + Insertとかでクリップボードにコピーできていたのですが、Ubuntuでapt-getで入れたvimは-clipboardでコンパイルされたものなのでそのままではクリップボードが使えません。
さすがに不便なのでいろいろ調べてみました。

全体の方針としては、Vimからコマンドラインに書き出して、そこから引数文字列をクリップボードにコピーするコマンドを実行させればよさそうです。
まず、Vimからコマンドラインに文字列を渡す方法ですが、:wに続けて!(コマンド名)とすればコマンドに文字列が渡せるっぽいことが分かりました。
続いて引数文字列をクリップボードに移したいのですが、これにはxselというコマンドを使えばよさそうです。標準では入っていないのでapt-getで入れます。

結果的にこんな感じ(コピーしたい領域を選択して以下のコマンドを入力):
:w !xsel -ib

これに適当なキーバインドを割り当てて完成。
.vimrcをこんな感じにしてみました。

vmap <C-y> :w !xsel -ib<CR><CR>

選択してControl + yとすれば指定箇所がクリップボードに入ります。
ペーストの方は挿入モードにしてCtrl + Shift + Vで今のところ不自由していないので当分このままにしておきます。

# :set noaiしてからペーストしないとインデントがどんどん増えてペーストされることがあるのでちょっと不便ですが。

 HOME