🙆

Fedora(WSL)の vim でヤンクした文字をWindowsのクリップボードに共有する

に公開

はじめに

非公式のFedoraから新しく配布された Fedora Linux に乗り換えしたので環境構築を続けます。

https://zenn.dev/tsuruya/articles/9ed5b3f1ded988

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

https://github.com/vim/vim/blob/master/src/INSTALL

ソースコード入手

以下のリポジトリをクローンしてください。

https://github.com/vim/vim

ghq get https://github.com/vim/vim

ghq が気になる方はこちらの記事を読んでみてください。

https://zenn.dev/tsuruya/articles/5f1640d8815873

クローンできたら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も手放すときが来るかも!?

GitHubで編集を提案

Discussion