vimでクリップボードを利用する¶
割と中々出来なかったネタ. vimでは編集している文章をコピーすることをヤンクと言いますが,この情報はクリップボートには反映されませんし, ペーストしても貼り付けられません.
で,そうなると困るのが例えばwebブラウザでサンプルコードを確認しながらスクリプトを書く場合です. このご時世,少し試したいサンプルコードをコピペ出来ないとか終わっています.
また,少し,メモをして,そのメモをvim以外のアプリケーションに流しこみたいときにも結構困ります. で,その解決法を調べたのでメモしておきます.
1.デフォルトの機能でなんとかする¶
結論を先に言えばなんとかなります. フルキーボートが使用できる環境なら,既存のキーバインドを利用すれば上記の作業をこなせます.
キーバインド | 内容 | 備考 |
---|---|---|
Ctrl + Insert | vimの内容をコピー | ヴィジュアルモードと併用で使用 |
Ctrl + Delete | vimの内容をカット | ヴィジュアルモードと併用で使用 |
Shift + Delete | vimの内容をカット | 基本的には同上 |
Shift + Insert | クリップボードの内容をvim上にペースト | 基本的には挿入モードと併用 |
キーバインド | 内容 | 備考 |
---|---|---|
Command-c | vimの内容をコピー | ヴィジュアルモードと併用で使用 |
Command-x | vimの内容をカット | ヴィジュアルモードと併用で使用 |
Command-v | クリップボードの内容をvim上にペースト | 基本的には挿入モードと併用 |
2. xselを利用する¶
xselとは標準出力をクリップボードに流し込むコマンドです. これを利用することで,vimの内容もクリップボードに流し込むことが可能です.
xselの導入¶
fedora19の場合,yumからいけます. おそらく,Linuxだったら大体これでいけるかと.
xselの使い方¶
1 2 | echo aaaaaa > hoge.txt
cat hoge.txt | xsel -bi
|
このようにすると,catの内容がクリップボードに流れます. vimで編集している文章をクリップボードに流すには範囲を選択したあと,
1 | :w !xsel -bi
|
とすればクリップボードにコピーされるはずです.