WSL1でWindowsのコンテキストメニューにemacsclientを追加するレジストリ設定
WSL2は未検証です
WSLでemacsclient にパスを送る方法は沢山あってどれにしようか迷っちゃう感じですが、今回はこちらの記事を参考にしました。
コンテキストメーニューに WSL の emacsclient を追加する。 · GitHub
reg ファイルを作っておけばツールを使わなくても再設定できるのでWindows再インストール等が楽になりますし、設定の備忘録にもなります。
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Classes\*\shell\EmacsClient] "MUIVerb"="Emacs Client" "Icon"="C:\\アイコンファイルパス\\emacs.ico,0" [HKEY_CURRENT_USER\Software\Classes\*\shell\EmacsClient\command] @="\"C:\\Windows\\System32\\wsl.exe\" emacsclient -n \"`wslpath -a '%1'`\""
アイコンファイルパスを環境に合わせて修正し、C-x RET f
で文字コードをutf-8-with-signature
にしてから emacsclient.reg
または任意の名前で保存します。
あとは Windows で reg ファイルを実行してやればコンテキストメニューに Emacs Client が追加されます。
注意点として、この書き方だと%%
を使った環境変数のパス文字展開はできません。
C:\\Windows
は %SystemRoot%
の方が当然好ましいですが、自前のregファイルで変数展開するのはちょっと大変みたいなので気にしないようにします。
もう一点の注意点として、この設定はregファイルを実行したユーザーにのみ作用します。
全ユーザーに設定したい場合は [HKEY_CLASSES_ROOT\*\shell\EmacsClient]
のようにします。