22
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSLでもサクラエディタを使いたい人のための.bashrc

Last updated at Posted at 2023-02-16

実行環境

  • 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 ではダメなのでしょうか?
ダメなのです。

image.png

aliasに設定することで直接 /mnt/c/path/to/sakura.exe を叩くのと同じようにしてみました。 なんとタスクバー上のアイコンが、虚ろな目をしたペンギンになってしまいました。

WSL上で直接Windowsの実行ファイルを叩くと、プロセスがWSLにぶら下がるためか、このようにおかしなことになるようです。

実のところ、私はサクラエディタではなく Mery というテキストエディタを愛用していますが、同じアイコンになってしまうのは同様です。

上記の書き方を使うことによる便利な点

もちろん、虚ろなペンギンをタスクバーに出さないためだけにこのような設定をするのではありません。

引数となるファイルパス $1wslpath を噛ませていますよね。こうすることで、WSL上のファイルであってもWindows側から覗くことのできるパス表記に変換されるため、WSL上のファイルをすんなりサクラエディタで開くことができます。

以上、サクラエディタだけでなく、秀丸でも、私が愛用するMeryでも、WindowsアプリでWSL上のファイルを扱いたいときには便利な小技でした。

22
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?