GTDとかが流行してきてるので、最近はToDo管理(タスク管理)もいろんなソフトやWeb上のサービスがありますが、サクラエディタでも簡単なToDo管理ができるマクロを作ってみました。ホントに簡単なものなので期待しないでください。
以下のソースをコピペして、「todo.js」などの名前をつけて保存してください。あとはサクラエディタの外部マクロに登録して、その外部マクロに好きなショートカットキーを割り当てれば完了です。私は [Alt] + [x] にしました。
// 選択範囲がなければ行選択
if(Editor.IsTextSelected() == 0)
{
Editor.GoLineTop(0);
Editor.Down_Sel(0);
}
// 通常の選択範囲が存在する場合のみ処理 (矩形選択のときは何もしない)
if(Editor.IsTextSelected() == 1)
{
var beginLine = Editor.GetSelectLineFrom(); // 選択開始行番号
var endLine = Editor.GetSelectLineTo(); // 選択終了行番号
var lineCount = endLine - beginLine; // 選択されている行数
// 1 行以上ある場合
if(0 < lineCount)
{
var result = ""; // 結果格納用
for(var i = 0; i < lineCount; i++)
{
// 行の内容を取得
var lineContent = Editor.GetLineStr(beginLine + i);
if(lineContent.match(/^\[ \]/))
{
// [ ] → [+]
lineContent = "[+] " + lineContent.substr(4);
}
else if(lineContent.match(/^\[\+\]/))
{
// [+] → [ ]
lineContent = "[ ] " + lineContent.substr(4);
}
else
{
// 新規に [ ]
lineContent = "[ ] " + lineContent;
}
result += lineContent;
}
// 結果を入力
Editor.InsText(result);
}
}
ものすごく簡単な機能しかありません。マクロを実行すると、単純にカーソルのある行の先頭に [ ] マークがつきます。そして、[ ] マークが行頭に既についている行にカーソルを置いてマクロを実行すると [+] マークに変化します。これがタスク完了の意味を表します。ちなみに [+] マークがついている行でマクロを実行すると [ ] に戻ります。
行は複数選択することも可能です。選択されている全ての行に対して上記の処理が行われます。
まずはサクラエディタに「やるべきこと」を1行ずつ入力します。入力の際に脳内で取捨選択せずに、思いついたことを何でも入れてしまうのがコツ。カッコつけても意味ないです。例えば以下のような感じ。
○○さんに電話をする プリンタのインクが無くなりそうなので買う 借りてた本を△△さんに返す 銀行からお金おろしてくる
そしてこれをToDo化します。入力したテキストを選択して、マクロを実行する(ショートカットキーを押す)。すると以下のようになります。
[ ] ○○さんに電話をする [ ] プリンタのインクが無くなりそうなので買う [ ] 借りてた本を△△さんに返す [ ] 銀行からお金おろしてくる
あとは実際に作業をこなしていきます。例えば○○さんに電話をしたら、その行にカーソルを合わせてマクロ実行。
[+] ○○さんに電話をする [ ] プリンタのインクが無くなりそうなので買う [ ] 借りてた本を△△さんに返す [ ] 銀行からお金おろしてくる
この調子でどんどんつぶしていけば、今まで「あれやんなきゃなー」って時々思い出してはイヤな気分になっていたことが、スッキリです。
ただのテキストエディタなので、編集や保存やアンドゥは自由自在です。
マクロはわざわざ使うものではなく、わざわざ手作業でやる必要がないような作業のために使うものだと思います。
とはいえ、サクラエディタのマクロは50件しか登録できないので、そこを1つ消費してまでマクロでやることか?と言われれば、ごもっともだと思います。マクロ数が無制限になってくれればいいんですけどねぇ。