なんだかんだとVimを使い始めて半年経ちました。
今回から色々とやってみた事とか、ぶつかった問題とかを書いてみようと思います。
ちなみに、使い出した頃の記事はコチラ
コピー&ペーストはy(ヤンク)とp(ペースト)を使うようになった。
まず今回のお題は「コピー&ペースト」です。
:source $VIMRUNTIME/mswin.vim
Vimを使いはじめた頃は上記を「$HOME/.vimrc」に以下を記述する事で「Ctr+C」 でコピー、「Ctr+V」でペーストを使えるようにしていました。
Vimの扱いにも少づつ慣れはじめ、ノーマルモードでのカーソルの移動を「h,j,k,l」が習慣になってきた頃から「Ctr+C」や「Ctr+V」でコピーとペーストを行う事に不自由を感じVim本来のy(ヤンク)とp(ペースト)を利用する事にしました。
ただここで一つ問題が・・・
Vimの一時保存する領域はクリップボードではない
Vimではy(ヤンク)したデータの一時保存する領域がクリップボードでは無く、ヤンクバッファと言う領域になります。
つまり、Vim上でy(ヤンク)したデータは他のアプリケーションで「Ctr+V」ではペーストとする事ができません。
またアプリケーションで「Ctr+C」でコピーしたデータもp(ペースト)で貼り付ける事も出来なくなります。
もちろんVimでもクリップボードを扱う方法はちゃんと用意されています。
“Shift + Insert”キー”でペースト “Ctrl + Insert”とコピーが出来るようになっています。
ただ、これではとても不便でいっそ「Ctr+C」や「Ctr+V」を使えるようにしたほうがはるかに作業が捗ります。
解決策
「Ctr+C」や「Ctr+V」に戻してしまうと言うのも一つの手です。
ですが、ここではあえてy(ヤンク)とp(ペースト)を使う事に拘ってみました。
解決策としては以下のような設定を「.Vimrc」に記述しています。
"ノーマルモードでクリップボードからペースト nnoremap <C-p> "+p "インサートモードでクリップボードの内容をペースト inoremap <C-p> <ESC>"*pa "Yankした情報を他のアプリケーションでも利用 set clipboard=unnamed
これによってVimでもクリップボードに一時保存する事でき、他のアプリケーションとのやり取りも問題なく行えます。
でも・・・
ここまでやってきてなんですが、「Ctr+C」や「Ctr+V」を使うというのもやはり一つの方法です。
今回はWindows環境での説明になりましたがMacVimではデフォルトで「Ctr+C」と「Ctr+V」(Macなので正確にはCtrキーではなくOptionキーです)が利用出来た記憶があります(確証がありませんが)。
もし、これによってVimを使う事を懸念されている方がいれば迷わず以前解説した「mswin.vim」を有効にする事をおすすめします。
さて、次回はいつになるかは分かりませんが、良く使うプラグインのお話とかを書こうかと思います。