初投稿です.既出だったら許してください.
Windows10は2017年4月11日にCreators Updateが配信されました.
そこで新しく追加された機能の中に「Windowsアプリケーションとの相互運用」があります.
今回はこれを利用して,Bash on Ubuntu on Windows(以下BoW)とWindowsとのクリップボード共有まがいのことをしてみようと思います.
準備
Windows10側での準備
まずはWindows10でのCreators Updateを行ってください.
そのあとghuntley/pasteboardのreleasesから「pasteboard-v1.1.0.zip」をダウンロードしてください.この中の pbpaste.exe を使います.
ダウンロードし,展開したフォルダpasteboard-v1.1.0 をpasteboard にリネームした後,任意の場所に移動,コピーして環境変数にpasteboard-v1.1.0 までのパスを追加します.
ここでは C:\app\pasteboard を環境変数に追加しました.
コマンドプロンプトでpbpaste と打って動くか確認したら準備は終了です.
BoW側での準備
改行コードや文字コードの変換に必要なnkf をインストールします.
sudo apt-get install nkf でインストール出来ます.Linuxはコマンド一つでインストール出来てとても楽ですね.
nkf --help と打ってヘルプが表示されたら準備は終了です.
作業
さぁ,実際に使うための作業をしましょう.
BoWを起動し,vim ~/.bashrc などで.bashrc を開きます.
ここに以下のコードを追加してください.
alias wcopy='clip.exe'
alias wpaste='pbpaste.exe'
保存して,source ~/.bashrc するかBoWを再起動してください.
使ってみる
windowsで適当なテキストファイルを作りましょう.ここではデスクトップにhoge.txt を作ってみます.
ばっしゅおんうぶんつおんうぃんどうず
ぽよよ
BoWで/mnt/c/Users/{Windowsのユーザ名}/Desktop に移動します.
cat hoge.txt | wcopy と入力するとコピーが出来ます.
その後pbpaste と打つとターミナルにコピーした内容が表示されますが,文字化けしていると思います.そこで間にnkf をはさみ,文字コードを変換してからコピーするようにします.
nkf -w hoge.txt | wcopy
(ちなみに,ここで改行コードをLFに変換してもclip.exe の仕様のせいかCRLFになってしまうっぽいのでwpaste したあとに改行コードを変換する必要があります)
wpaste で確認すると文字化けが解消されているかと思います.
また wpaste > out.txt とすることで wpaste の内容をout.txt に保存することが出来ます.
使い方まとめ
-
cat ファイル名 | wcopyでコピー- 文字コード問題は
nkf -w ファイル名 | wcopyで解決
- 文字コード問題は
-
wpasteでコピーした内容が見れる-
wpaste > ファイル名でファイルに出力できる
-
以上でクリップボード共有まがいを実現する計画は完了です.
もし何かあったら,コメントかTwitterでリプしてくださると助かります.