背景
もともとwindowsにてvirtualboxの仮想環境を扱っておりましたが、
諸事情によりWSL2に乗り換えることとなりました。
virtualboxではlemonade を使用し、
windows側でlemonadeサーバーを立て、仮想環境からwindows側へTCPを使いクリップボードの共有を行いに行く という形をとっていました。
が、仕事の都合上、windowsのファイヤーウォールの設定をいじることができないため、疎通ができないため諦めていてWSLでの他の共有方法を探していました
検討
WSLでのクリップボードを共有する方法を調べていると、
- xclip/xsel
- xサーバーをwindowsで立てる形になり、windows側へ疎通するのが同じくファイヤーウォールの都合上難しい
- win32yank
- たまにfreezeしたりcrash報告がいろいろあるらしい
- clip.exeでコピーとpowershellで貼り付け
- powershellを使ったpasteが遅いらしい
などなど、どれも微妙だな~と思っていました。
仮説
lemonadeでは
windows側でlemonadeサーバーを立て、仮想環境からwindows側へTCPを使いクリップボードの共有を行いに行く
という方法だったが、wslでは仮想環境から直接windows側のlemonade.exeを実行できるので、ホスト側のlamonadeで直接copyしてあげればクリップボードに反映されるのでは?
動作確認
wsl側で、/mnt/c/
から辿るとexeファイルをそのまま実行できるので、/mnt/c/hogehoge/lemonade.exe copy "hoge"
としてみると、windows側でpasteしてみるとhoge
が貼り付けられた! => 成功
同じようにwindows側でコピーした内容も /mnt/c/hogehoge/lemonade.exe paste
にてコンソールに表示されることを確認
設定
を見ると、lemonade
にパスが通っているとneovim側で何も g:clipboard
に設定しなくても良さそう
wsl用にわざわざ設定を分けなくて良いので、vimの設定ファイルはキレイさを保てる!
環境の問題は環境側の設定のみで解決したい。
パスを通すため、パスの通っているところにlemonadeのシンボリックリンクを貼る
ln -s /mnt/c/hogehoge/lemonade.exe ~/.local/bin/lemonade