実行環境
- Windows 11 22H2
- WSL バージョン: 1.0.3.0
WSL上で編集するファイルをサクラエディタで開きたいッッッ
以下の内容を.bashrcに書きましょう。
※ C:\path\to\sakura.exe
はご自身の環境のパスに変更してください
sakura
コマンドを実行することでWSL上のファイルが開けるようになります。
function sakura() {
sakura_arg=()
for p in $@; do
if [ -f "$p" ]; then sakura_arg+=("`wslpath -w $p`"); fi
done
(
/mnt/c/Windows/System32/cmd.exe /c 'C:\path\to\sakura.exe' $sakura_arg[@] >/dev/null 2>&1 &
sleep 2
pid="$!"
if [ -x "/proc/$pid" ]; then kill $pid; fi
)
}
2023/02/18 追記
サクラエディタを終了するまで、cmd.exeだけがバックグラウンドプロセスに残り続けてしまうことに気づきました。起動する毎に塵も積もれば…でメモリを消費し続けてしまうので、起動直後にkillするようにしました。
なぜこんな回りくどい書き方なの?alias使えばよくない?
alias sakura=/mnt/c/path/to/sakura.exe
ではダメなのでしょうか?
ダメなのです。
aliasに設定することで直接 /mnt/c/path/to/sakura.exe
を叩くのと同じようにしてみました。 なんとタスクバー上のアイコンが、虚ろな目をしたペンギンになってしまいました。
WSL上で直接Windowsの実行ファイルを叩くと、プロセスがWSLにぶら下がるためか、このようにおかしなことになるようです。
実のところ、私はサクラエディタではなく Mery というテキストエディタを愛用していますが、同じアイコンになってしまうのは同様です。
上記の書き方を使うことによる便利な点
もちろん、虚ろなペンギンをタスクバーに出さないためだけにこのような設定をするのではありません。
引数となるファイルパス $1
に wslpath
を噛ませていますよね。こうすることで、WSL上のファイルであってもWindows側から覗くことのできるパス表記に変換されるため、WSL上のファイルをすんなりサクラエディタで開くことができます。
以上、サクラエディタだけでなく、秀丸でも、私が愛用するMeryでも、WindowsアプリでWSL上のファイルを扱いたいときには便利な小技でした。