Vimで記述したコードをwebで提出する時などにペーストできず四苦八苦したのでここでまとめておく. Vimの中でペーストするだけなら簡単だが他のものにペーストするときには予め一手間おいておく必要がある.
本題はペーストの項にあるのでお急ぎの方はそちらへどうぞ.
悪い例(Terminalに覚えさせる)
範囲をマウスで指定してctrl + shift + c
すればターミナルからクリップボードに"コピー"できる.でもマウスを使うなんてCUIやキーボードがベースのVimっぽくないし,Vim自体からクリップボードに覚えさせているわけではない. なによりイケてない.
どうせならVimの力だけで済ませたいというのがVimmerのロマンだ.
範囲選択
コマンド | 動作 |
---|---|
v | ビジュアルモードに移行 |
(vモード) h,j,k,l | 範囲選択 |
(vモード) G | カーソル行から最後まで選択 |
(vモード) gg | カーソル行から最初まで選択 |
ggvG | 全選択 |
ヤンク(コピー)
コマンド | 動作 |
---|---|
dd | カーソルのある行をカット |
ndd | カーソルのある行を含め下にn行カット |
yy | カーソルのある行をヤンク |
nyy | カーソルのある行を含め下にn行ヤンク |
y | vで選択した範囲をヤンク |
エディタ | 動作 |
---|---|
:n,m y | n行目からm行目までヤンク |
:%y | 全体ヤンク |
ペースト
コマンド | 動作 |
---|---|
p | ヤンクした範囲をペースト(カーソルの下の行) |
np | ヤンクした範囲をnつペースト |
P | ヤンクした範囲をペースト(カレント行) |
ちなみにこのとき任意の場所でない箇所でインデントされてしまうのを防ぐために, エディタモードで:a!
を打ち込んでからp
でペーストし, exc
キーを打てば希望通りの文章をペーストできる.
ここからが本題だ.
クリップボードとVim
クリップボードが使えるか
クリップボードを使わないとコピー&ペーストはできない. だがVimがクリップボードを使えない可能性がある. 自分のVimはどうなのか調べてみよう.
$ vim --version | grep "clipboard"
このとき一番最初に出てきたのが-clipboardだった同志はvim-gtk, もしくはvim-gtk3をインストールしよう. これはGUIバージョンのVim, gVimが付属したVimである. だがgVimを使う必要はない. インストールすると通常のVimでも+clipboardに, つまりクリップボードを使えるようになる.
$ sudo apt-get install vim-gtk
なお上の結果が最初から+clipboardだった人はおそらく残念なMacユーザかと思われるが, いずれにせよこの作業は必要ない.
Vimにクリップボードを使わせる
.vimrcというファイルをご存知なら, そこに次の一行を加えよう.
setclipboard=unnamed,autoselect
もしご存知でなかったら, これはいい機会だ. 自分のホームディレクトリに .vimrcというファイルを作成し, 上の文を加えよう. vimはカスタマイズ性に優れたテキストエディタであり, このファイルはそれを実現してくれるファイルだ. 是非 .vimrcをいじって自分だけのvimを手に入れよう.
ペースト先によって異なるペースト方法
Vimにペーストするならコマンドモードからp
だが, 他のエディタやwebページなどにペーストするならctrl + v
でペーストする.
よいVim Lifeを!
参考にしたサイト
「vim」の種類 - http://zorinos.seesaa.net/article/451348076.html←是非見に行くと良いと思います.