初投稿です.既出だったら許してください.
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でリプしてくださると助かります.