vimのヤンク時にMacのクリップボードにもコピーする方法
vimのヤンクを実行した際にMacのクリップボードにコピーされなくて不便だったため、ヤンク時にクリップボードにコピーされるようにした際の備考録です。
vimのヤンク時にMacのクリップボードにもコピー出来るようにする
現在のvimの確認
現在使用しているvimが Macのクリップボードにもコピー されるものか確認します
1 2 3 |
$ vim --version | grep clipboard 15:-clipboard +job +path_extra -toolbar 32:+ex_extra -mouse_gpm -sun_workshop -xterm_clipboard |
以下のように -clipboard
が表示された場合、Macのクリップボードにコピーされません。
これは「クリップボードの使用が不可能だよ」という事を意味します。
逆にクリップボードの使用可能なvimの場合は +clipboard
と表示されます。
そもそも何のvim使ってるんだ?と思って調べてみると
1 2 |
$ which vim /usr/bin/vim |
Mac標準のvim使ってたみたいです、標準のvimはそういう設定のものを使用してるんですね。
Homebrewでvimをインストール
Homebrewを使ってインストールします。
1 |
$ brew install vim |
zshrcを読み込み直してHomebrewのvimになっているか確認します
1 2 3 4 5 6 |
# zshrcを読み込み直す $ source ~/.zshrc # 使用しているvimの確認(Homebrewでインストールしたものは /usr/local/bin/ 内のコマンドを実行) $ which vim /usr/local/bin/vim |
クリップボードの設定部分を確認してみると
1 2 3 |
$ vim --version | grep clipboard 18:+clipboard +jumplist +persistent_undo +virtualedit 32:-ebcdic -mouseshape +statusline -xterm_clipboard |
+clipboard
になりました!
vimrcに設定を追記
ここまでだとヤンクした際にクリップボードにコピーまでは行われません。
以下どちらかの設定を ~/.vimrc
に追記する必要があります。(お好みでどうぞ)
1 |
set clipboard+=unnamed |
もしくは
1 |
set clipboard+=unnamed,autoselect |
それぞれの意味は
値 | 意味 |
---|---|
unnamed | ヤンクしたテキストをクリップボードにコピー |
autoselect | vim上でハイライトして選択したテキストがクリップボードにコピー |
autoselect
はヤンクをする前の選択しただけの状態でもクリップボードにコピーされます。
予期せぬものもコピーされてしまいそうな気がするので私は設定していません。
余談ですが、+=
ではなく^=
にしないと動かないという記事があったのですが、
vimでクリップボード連携を有効にした話 - pockestrap
vimのバージョンの問題なのか、Macだと大丈夫なのか、はたまたvimrc
に色々記載してるためか、+=
でもフツーに動いてしまう^^;
あとがき
何かとvimでヤンクした情報をMacの他のアプリで貼り付けたい、と思う事があるのでこれで作業が少し捗りそうです。