結論:
原因:
sakura.exe を C:\Program Files\ に置いていると、設定ファイル sakura.ini の書き込みできず、
設定が毎回リセットされてしまった。
解決:
sakura.exe.ini を1つ置いて保存先を %APPDATA% へ逃がせば直りました。
(Windows 11・標準ユーザー環境で確認)
症状
タイプ別設定(設定 → タイプ別設定 → スクリーン → 折り返し方法)で右端折り返しにしても、翌日サクラを開くと元に戻ります。
メニューの折り返しは一時設定なので戻って当然ですが、恒久側のタイプ別設定でも戻るのが問題でした。
原因:保護フォルダに書き込めていない
恒久設定でも戻る=設定が保存先に書けていない、と切り分けました。
sakura.ini を探すと、自環境には、既定場所含めなぜかどこにもありませんでした。。
-
C:\Program Files\sakura.ini(既定=exe の隣) -
%LOCALAPPDATA%\VirtualStore\Program Files\sakura.ini(UAC 仮想化で逃げた場合) -
%APPDATA%\sakura\sakura.ini(ユーザー別設定時)
C:\Program Files\ は標準ユーザーに書き込み権限がありません。
サクラは既定で exe の隣に sakura.ini を書くため、ここでは書き込みが黙って失敗します。
現行 v2.x はマニフェストが asInvoker で UAC のファイル仮想化が効かないため、VirtualStore にも逃げず、どこにも残りません1。
解決:sakura.exe.ini で保存先を %APPDATA% へ
sakura.exe の隣に sakura.exe.ini(実設定の sakura.ini とは別ファイル)を置くと、ユーザー別設定が有効になります2。
[Settings]
MultiUser=1
UserRootFolder=0
UserSubFolder=sakura
これで実設定は %APPDATA%\sakura\sakura.ini に保存されます。
手順は次のとおりです。
- 書き込める場所(デスクトップ等)で
sakura.exe.iniを作る。 -
C:\Program Files\(exe の隣)へコピーする。 - サクラを再起動し、設定し直す。
確認:開いたフォルダに sakura.ini があれば完了です。
-
asInvoker指定時に UAC のファイル/レジストリ仮想化が無効になる仕様(Microsoft Learn「Application manifests」 https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests )。 ↩ -
サクラエディタ公式ヘルプ「ユーザー別設定」 https://sakura-editor.github.io/help/HLP000078.html (
sakura.exe.iniとsakura.iniは別ファイル)。 ↩