基本は
に記載のとおり
の順で参照される。この時、1,3,4 について空白は引数の絶対的な区切リ文字として機能する。つまり
set "EDITOR=C:/Program Files/Notepad++/notepad++.exe"
→ NGset "EDITOR=\"C:/Program Files/Notepad++/notepad++.exe\""
→ NGset "EDITOR=""C:/Program Files/Notepad++/notepad++.exe"""
→ NGset "EDITOR=^"C:/Program Files/Notepad++/notepad++.exe^""
→ NGset "EDITOR=notepad++.exe"
→ OK (%PATH% にディレクトリが登録されている場合)set "EDITOR=C:\PROGRA~1\Notepad++/notepad++.exe\""
→ OKset "JJ_EDITOR=C:\PROGRA~1\vim\vim91\vim.exe --literal"
→ OK
となるようだ。なお、C:\PROGRA~1
は C:\Program Files
のショートファイル名(DOS互換の8.3形式のファイル名) だが、常にそうとは限らない。
2についても単純な文字列として設定する場合は 1,3,4 と同じ扱いになるが、配列として定義する場合のみ、空白を設定可能になる。つまり、以前
で記載した書き方になる。
[ui] editor = [ "C:/Program Files/vim/vim91/vim.exe", "--literal" ]
ただし、この設定は jj config edit --repo
でしか設定できず、jj config get ui.editor
で現在の設定内容を確認できなくなるという制限があるようだ。うーん
ちなみに Git も
$ set "GIT_EDITOR=C:/Program Files/Vim/vim91/vim.exe" $ git commit --amend hint: Waiting for your editor to close the file... C:/Program Files/Vim/vim91/vim.exe: line 1: C:/Program: No such file or directory error: There was a problem with the editor 'C:/Program Files/Vim/vim91/vim.exe'. Please supply the message using either -m or -F option.
おんなじだった。