Fedora(WSL)の vim でヤンクした文字をWindowsのクリップボードに共有する
はじめに
非公式のFedoraから新しく配布された Fedora Linux に乗り換えしたので環境構築を続けます。
vim がインストールされていなかったのでdnfを使ってインストールしました。
一応これでvimの利用はできていました。
ただ、前からWSLのターミナルから vim でヤンクしたときにWindowsのクリップボードにコピーできないものかと思っていました。
せっかく良い機会なので対策することにしました。
本記事では vim についての説明は割愛させていただきます。
vim の状況を確認する
まずはじめに、今利用しているvimのclipboardの設定が有効になっているかを確認してください。
vim --version | grep clipboard
実行結果
-clipboard
この clipboard の先頭が+であればクリップボード機能が有効になっている状態です。(間違っていたらごめんなさい)
vim をソースコードからインストールする
clipboard を有効にするには github に公開されている vim のソースコードをビルドしてインストールする必要があります。
必要なパッケージをインストール
github にインストール方法が記載されているのでこちらを参考に進めていきます。
sudo dnf -y install git make clang ncurses-devel libXt-devel
ソースコード入手
以下のリポジトリをクローンしてください。
ghq get https://github.com/vim/vim
ghq が気になる方はこちらの記事を読んでみてください。
クローンできたらsrcディレクトリに移動します。
cd github.com/vim/vim/src
ビルドオプション
ビルドの前に src ディレクトリ配下で ./configure コマンドを実行するとオプションを指定することが可能です。
「どの機能(言語インタプリタ、GUI、マルチバイトなど)を含めるか」などを選べます。以下が代表的なものです。
| オプション | 内容 / 効果 |
|---|---|
--with-features=... |
ビルドスコープを指定。tiny/small/normal/big/huge から選択可能。huge にすることで可能な限り多くの機能を有効に。 |
--enable-multibyte |
マルチバイト文字(日本語などのUTF-8文字)に対応。 |
--enable-perlinterp / --enable-pythoninterp / --enable-python3interp / --enable-rubyinterp / --enable-luainterp
|
Perl, Python2, Python3, Ruby, Lua などのスクリプトインタプリタを有効に。プラグインやスクリプト言語の利用に必要。 |
--with-luajit |
Lua の代替として LuaJIT を使う。Lua を使うプラグインを「高速実行」をねらうなら有効に。 |
--enable-gui=gtk2 / --enable-gui=gtk3 / --enable-gui=gnome2 / あるいは --enable-gui=auto
|
GUI(gVim)のビルドを有効に。GTK2/GTK3/GNOME などを選択可能。GUI を不要なら omit も可。 |
--enable-fail-if-missing |
指定したオプションの依存ライブラリがそろっていない場合にビルドを失敗させる。依存が不明瞭なときに有用。 |
--prefix=... |
インストール先ディレクトリを指定。デフォルトは /usr/local など。システム標準と衝突させたくない場合などに指定。 |
今回私は以下のようなオプションで設定しました。
./configure \
--with-features=huge \
--disable-gui \
--enable-multibyte \
--enable-perlinterp \
--enable-python3interp \
--enable-rubyinterp \
--enable-luainterp --with-luajit \
--enable-fail-if-missing \
ビルド / インストール
ビルドオプションの設定をし終えたら以下コマンドでビルド
make
そしてインストールを実行します。
sudo make install
ターミナルを開き直すか source コマンドで読み込み直して以下コマンドを実行します。
vim --version | grep clipboard
先頭に+が付いた clipboard が表示されてれば完了です。
+clipboard
これで、WSLのターミナルからvimでヤンクした場合でもWindowsのクリップボードに共有され、<C-v>でペーストできるようになりました。
最後に
これまでずっとこういうものだと思って運用してきましたが、かゆいところに手が届いた感覚でスッキリしました。
このままだとそのうちVS Codeも手放すときが来るかも!?
Discussion