Ubuntu on WSL2 上の Vim でクリップボード連携


Windows Subsystem for Linux 2 (WSL2) 上の Ubuntu 18.04 にて、Vim でクリップボード連携を行う方法について説明します。

また、こちらの記事はほぼ Gist にあげた記事 の翻訳です。

環境

  • Windows 10 Home
  • Ubuntu 18.04 on Windows Subsystem for Linux 2 (WSL2)

手順

  1. Vim をクリップボードオプションを有効にしてビルド
  2. VcXsrv Windows X Server をセットアップ
  3. VcXsrv に WSL2 上の Ubuntu から接続

Vim をクリップボードオプションを有効にしてビルド

まずは Vim のクリップボードオプションを有効にしてビルドするのに必要なライブラリを導入します。

sudo apt install ncurses-dev libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev python3-dev ruby-dev lua5.1 lua5.1-dev libperl-dev

全部のライブラリが必要なわけではないので、不要なものは好きに削除してください。
個人的に色々と予め有効化しておきたいので、ガッツリ入れてしまっています。

そして Vim を公式ガイドに従いビルドします。

cd /usr/local/src
sudo git clone https://github.com/vim/vim.git
cd vim/src
sudo make distclean  # if you build Vim before
sudo make
sudo make install

2. VcXsrv Windows X Server をセットアップ

VcXsrv Windows X Server をダウンロードし、XLaunch を以下のオプションで起動します。

  • Multiple windows (default)
  • Start no client (default)
  • Extra settings
    • Clipboard (default)
    • Primary Selection (default)
    • Native opengl (default)
    • Disable access control

基本的には、全ての Extra settings を有効化し、残りはデフォルトといった感じです。
最後に Save configuration ボタンをクリックし、C:\Users\<USER NAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup に設定を保存し、Windows 起動時に VcXsrv が立ち上がるようにします。

3. VcXsrv に WSL2 上の Ubuntu から接続

WSL2 上の Ubuntu に再度ログインし、環境変数 DISPLAY を設定します。

LOCAL_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export DISPLAY=$LOCAL_IP:0

以上です!

参考