WSL

Windows linux

環境

以下を前提にしています.

Base Setup

タイトルはともかく基本の設定はこれだけ見ておけばいい. 内容は Xサーバ (VcXsrv) を入れてやっていこうという話.

IME

fcitx-mozc のセットアップ

クリップボード

選択肢としては2つある.

  1. X Window System を使う
  2. Windows に入ってるクリップボード操作を使う

前者は書いてある通りなので後者について述べる

Windows にはクリップボードを操作するためのコマンドとして clip.exe がある. これはコピーする(クリップボードにテキストを上書きする)ことだけができる. ペーストする(取り出す)専用のコマンドはたぶんないが, PowerShell のコマンド Get-Clipboard があるのでこれを使うと良い.

注意点が3つあり,

  1. 文字コード...?
  2. 改行コードは CRLF ( \r\n ) にした方がよい
  3. clip.exe は末尾に無駄な空行を一つ差し込んでコピーする

3つ目はペーストするタイミングで良ければ, sed で消すなどすれば良いが, シェル以外のところでペーストすると無駄な空行が残るし, 最後に空行が残ってるのが正しい場合でも消すので, 正しい対処とは言えない.

# コピーする
echo ほげほげ | nkf -c | clip.exe

# ペーストする
powershell.exe /c "Get-Clipboard" | nkf -d | sed '${/^$/d}'

これらを適当にエイリアスにしておけばよい.

シェルスクリプトから標準入力があるかどうかをチェックすることで挙動を変えることは可能なので, コピーもペーストも同じコマンドとして登録することは可能(実際 xsel などはそうだし). 私は clip コマンド として使えるように置いてある.