仕事でもプライベートでも、簡単にメモを取りたいときはやっぱりサクラエディタですよね。
でもいろんなメモを素早く保存したいとき、ファイル名をつけるのはいちいちめんどくないですか?
かといって保存せず(無題)のままPCがフリーズでもしたら、、、あー恐ろしい。
というわけで、Ctrl+S で新規ファイルの保存時に、以下をできるようにしました。
・「日付+1行目の文字列.txt」をファイル名として保存
※ファイル名は保存時に変更可能です。
※1行目に文字列がない場合は「日付+Notitle.txt」に設定します。
上記実現のためにサクラエディタで使う機能は以下です。
マクロはどなたか(ありがとうございます)のネットの情報を参考にして加筆しました。
・マクロ
・キー割り当て
例えば、
サクラエディタで以下の内容でファイルを新規作成して、Ctrl + S を押すと、
タイトルてすとほげほげ
以下は本文だよ
aaa
bbb
以下のファイル名として保存できます。
新規ファイルの「名前を付けて保存」と同じ動作なので、保存前にファイル名は確認できます。
20220213_タイトルてすとほげほげ.txt
1. マクロファイル作成
auto_name.jsという名前(なんでもいい)でファイル名を作成
さくらのデフォルトのマクロ保存場所「C:\Users%USERNAME%\Appdata\Roaming\sakura\」に保存する
任意の場所に保存でもよい
// var pattern = /[\\\/:\*\?""<>\|\r\n]/g;
var pattern = /[\r\n]/g;
var pattern2 = /./g;
var EXT = '.txt';
Main();
function Main() {
var WshShell = new ActiveXObject("WScript.Shell");
var sLine = GetLineStr(1).replace(pattern, "").replace(/\./g, '-');
// 1行目に文字列がない場合はNoTitleを付ける
if (sLine == "")
var sLine = "NoTitle"
if (Editor.GetFilename() != ''){
FileSaveAs(Editor.GetFilename());
return;
}
var sFileName = WshShell.CurrentDirectory
+ '\\'
+ getNow()
+ '_'
+ sLine
+ EXT;
FileSaveAsDialog(sFileName);
}
function getNow(){
var now=new Date();
var y = now.getFullYear();
var m = ("0"+(now.getMonth()+1)).slice(-2);
var d =("0"+( now.getDate())).slice(-2);
return y+m+d;
}
2. マクロの登録
「1行目をファイル名として保存」という名前でマクロとして登録する
(マクロの名前も何でもいい)
- メニュー > 設定 > 共通設定を開き、マクロを選択
- マクロ一覧で0番または空のマクロを選択(キャプチャは設定後の画面です)
- 作成した「auto_name.js」をFileで選択
- 「1行目をファイル名として保存」という名前で設定
- キャンセル確認待ち時間を0秒に設定する
- 設定ボタン押す
- OK押す
3. キー割り当て
上記で作成したマクロを、上書き保存の「Ctrl + S」に割り当てる
- メニュー > 設定 > 共通設定を開き、キー割り当てを選択
- 種別に外部マクロを選択
- 「1行目をファイル名として保存」のマクロ選択
- Ctrlにチェック
- Ctrl+Sを選択
- 割付でキーに割り当てる
- すでに割付があれば解除する
- OK押す
ファイル保存時にCtrl+Sを実行で確認
ファイル名の欄に自動で入力される
これでよければあとは保存を押すだけ