Skip to content

Tritask 実装。秀丸エディタマクロ + Python

License

Notifications You must be signed in to change notification settings

tritask/tritask-sta

Repository files navigation

tritask-sta

tritask-sta は タスク管理メソッド Tritask を実装したタスク管理ツールです。

tritask_sta_demo

特徴

  • 秀丸エディタ + Python による実装
  • 操作はツーステップ
    • 1: ショートカットキーを押してメニューを開く
    • 2: 実行したい項目を選ぶ
  • ルーチンタスク
    • 例1: 毎日繰り返す → rep:1
    • 例2: 3日毎に繰り返すが休日は省く → rep:3 skip:休
  • 実行日の操作
    • Walk day(指定したタスクの実行日をn日後・n日前に変える)
    • Walk +1 day(指定したタスクを明日にスキップする = 実行日を+1する)
    • Change to Today(指定したタスクの実行日を今日にする)

システム要件

  • Windows 7+
  • Python 3.6
  • 秀丸エディタ
    • 動作確認を行っているのは V8.91
    • 古いバージョンだとマクロが動作しないかもしれません

インストール

  • (1)環境の準備
    • 上記システム要件を全て満たす
    • ※Python インストール方法など詳細は割愛
  • (2)入手
  • (3)秀丸エディタの設定
  • (4)データファイルの準備
    • .trita ファイルを新規する(空ファイルなり サンプル 使うなり)
  • (5)秀丸エディタの設定
    • tritask.mac を「キー割り当て」や「ツールバー」から素早く呼び出せるようにする
    • trita ファイル用の強調表示設定を適用する
    • その他 > ファイルタイプ別の設定 > 設定の一覧
    • 適当な設定をコピーして trita 用設定をつくる
    • 秀丸エディタで trita ファイルを開き、trita 用設定を選んだ後、trita.hilight を強調表示設定として読み込む
    • ダークテーマもあります → trita_dark.hilight

使い方

tritask.mac マクロを実行するとメニューが表示されるので、実行したい操作を選択します。

詳細については以下ドキュメントを参照してください。

強調定義ファイル trita.hilight について

秀丸エディタ上で trita ファイルを見易く&扱いやすくするために、専用の強調定義ファイルを用意しています。

出来ること:

  • 各種文法のハイライト表示
    • 属性(繰り返しの rep:1 など)
    • 未完了タスク
    • 開始中タスク
    • 土曜日を青色で、日曜日を赤色で表示
  • 見出し( --を含む行)のサポート
    • 強調表示
    • 秀丸エディタの「次(前)の見出しに移動」も使えます

FAQ > インストール

Q: Python のインストールに失敗します

管理者権限でインストールしてください。

Q: trita ファイルを秀丸エディタに関連付けることができません

管理者権限で実行してください。

秀丸エディタから関連付けることも可能です。

  • 1: 秀丸エディタ > 「その他」メニュー > 動作環境
  • 2: 関連付け
  • 3: 「関連付け可能な拡張子の登録」ボタン
  • 4: 「追加」ボタンから trita を登録

FAQ > Tritask 操作

Q: タスクの新規/コピー時にカーソル位置がずれたり余分な空白が入ったりします

秀丸エディタの 自動インデントをオフ にしてください。

  • ファイルタイプ別の設定 > 体裁 > インデント > 自動インデント のチェックを外す

Q: なぜかタスク操作が成功しません(黒い画面が出るだけで何も起こりません)

秀丸エディタ上での表示が折り返されていないか を確認してください。

折り返されている場合、tritask.mac が正常に動作しないため、このような動作になります。折り返されないように、行の文字数、ウィンドウ幅、折り返し設定などを変更してください(.trita ファイルタイプの折り返し設定は「折り返さない(最大幅で折り返し)」にすることをおすすめします)。

以下は正しくない例です(15文字で折り返す設定の場合)。

2 2017/09/16 Sat             タ
スク1
2 2017/09/16 Sat             タ
スク2
2 2017/09/16 Sat             タ
スク3

折り返された結果、「スク1」「スク2」のように不正な行が発生してしまっています。こうなると tritask.mac は正常に動作しません。

以下は正しい例です(折り返しがありません)。

2 2017/09/16 Sat             タスク1
2 2017/09/16 Sat             タスク2
2 2017/09/16 Sat             タスク3

Q: リファレンス機能でリファレンスが開かれません

上記と同様の原因です。秀丸エディタ上での表示が折り返されていないか を確認してください。

特に過去タスクのリファレンスを開く場合、そのタスクより上にあるタスク行のどこかで折り返し(による余分な行)が発生していないか を確認してみてください。

(詳しい話をしておくと)リファレンス機能は、helper.py に対して「N行目のタスクが持つリファレンスを開いてください」という風に命令を与えているのですが、折り返しにより余分な行があると、行数指定 N の位置がずれてしまい、このエラーが生じます。

FAQ > Tritask 上級者向け

Q: 開発者向けのドキュメントはありますか?

一応あります。

README_development.md

Q: --report というオプションがありますが、これは何ですか?

trita ファイルの終了済タスクを集計した結果をファイルに保存します。

trita ファイルと同じディレクトリに以下が生成されます:

  • report_daily.md
  • report_monthy.md
  • report_hourly.md

ファイルの中身例を以下に示します(monthlyを例に):

# Monthly
All 11 keys.

- 2018/05 : 166 Tasks, Total:36.6[H], Avg:13.2[M]
- 2018/04 : 737 Tasks, Total:152.9[H], Avg:12.4[M]
- 2018/03 : 719 Tasks, Total:181.5[H], Avg:15.1[M]
- 2018/02 : 678 Tasks, Total:161.9[H], Avg:14.3[M]
- 2018/01 : 609 Tasks, Total:133.2[H], Avg:13.1[M]
- 2017/12 : 752 Tasks, Total:157.3[H], Avg:12.5[M]
- 2017/11 : 728 Tasks, Total:167.2[H], Avg:13.8[M]
- 2017/10 : 500 Tasks, Total:106.1[H], Avg:12.7[M]
- 2017/09 : 728 Tasks, Total:172.4[H], Avg:14.2[M]
- 2017/08 : 441 Tasks, Total:107.2[H], Avg:14.6[M]
- 2017/07 : 227 Tasks, Total:58.5[H], Avg:15.5[M]

こんな具合に日毎、月毎、時間帯毎のレポートを知ることができます。

Q: Start Task などの操作をショートカットキー一発で呼び出すことはできますか?

一部操作のみ v1.6.1+ にて対応しました。

設定手順:

  • (1) tritask_cmd_start.mac や tritask_cmd_end.mac をマクロ登録する
  • (2) 1 に対してキー割り当てを割り当てる
    • 例: PageUp に tritask_cmd_start を、PageDown に tritask_cmd_end を

利用方法:

  • キー割り当てにて割り当てたショートカットキーを押す

制約事項:

  • tritask_cmd_XXXX.mac は tritask.mac と同じフォルダに置く必要がある

Q: アクセラレーター(Start Task の (S) など)が気に入らないので変えたいのですが可能ですか?

tritask.mac を編集すれば可能です。

以下のあたりを見てください。

...
// [[[ menu item start
#idx=#I_ADD; $items[#idx]         = "(&A)Add Task";
#idx=#I_ADDINBO; $items[#idx]     = "(&X)Add Inbox";
#idx=#I_COPY; $items[#idx]        = "(&C)Copy Task";
……(中略)……
#idx=#I_EDIT_SCRI; $items[#idx]   = "(&P)Programming helper script";
#idx=#I_EDIT_ME; $items[#idx]     = "(&P)Programming this macro";
#idx=#idx+1; #maxidx = #idx;
// menu item end ]]]
...

たとえば Start Task の発動を S キーから H キーに変えたい場合、以下のように修正します。

#idx=#I_START; $items[#idx]       = "(&S)Start Task";

        ↓

#idx=#I_START; $items[#idx]       = "(&H)Start Task";

Q: Find In Today とは何ですか?

v1.9.0から追加した機能で、キーワード(範囲選択された文字列)を含む「今日のタスク」すべてを操作対象にする、というものです。

Walk day、Walk +1 day、Change to Today など日付系操作が対応しています(メニューに表示されています)。

使い道は色々ありますが、作者が以下を実現したかったがために誕生しました。

  • やりたいこと
    • テレワーク時は「出社時のみ行うルーチンタスク」をスキップしたい
    • 出社時は「テレワーク中にのみ行うルーチンタスク」をスキップしたい

これを実現するために、以下のようにします。

  • 出社時のみ行うルーチンタスクには office というキーワードを入れておく
  • テレワーク中にのみ行うルーチンタスクには tele というキーワードを入れておく
  • たとえばテレワーク時は、以下の操作をする
    • office という単語を範囲選択する
    • Walk +1 day する

こうすると 範囲選択されたキーワード(この場合はoffice)を含む「今日のタスク」 が操作対象になります。結果として、出社時にのみ行うルーチンタスクすべてをまとめて Walk +1 day できます。

Q: Clone 属性とは何ですか?

v1.11.0から追加した機能で、「何個もつくっておいたものの中から選んで開始する」類のタスクをかんたんに増やすものです。

たとえば「休憩」を行うタスクは、まさにその類のタスクだと思います。

2 2022/06/24 Fri             休憩
2 2022/06/24 Fri             休憩
2 2022/06/24 Fri             休憩
  ……
2 2022/06/24 Fri 20:09       休憩 ★休憩するときは一つ選んで開始する
2 2022/06/24 Fri             休憩
2 2022/06/24 Fri             休憩
  ……

このようなタスクをかんたんに増やすのが Clone 属性です。以下のように書きます。

2 2022/06/24 Fri             休憩 clone:0

増やしたいときは、clone:★ここを変えます

2 2022/06/24 Fri             休憩 clone:4

変えた後にソートを行うと、その数だけ複製されます。

2 2022/06/24 Fri             休憩 
2 2022/06/24 Fri             休憩 
2 2022/06/24 Fri             休憩 
2 2022/06/24 Fri             休憩 
3 2022/06/25 Sat             休憩 clone:0

このとき、Clone 属性を持つ元のタスクが「翌日に移っている」点に注目してください。つまり Clone 属性は、一日一回使うようなイメージになります。「今日は休憩は5回くらいしようかな」と思ったら、clone:5と書いてソートするだけで5個の休憩タスクをつくれます。

非常にマニアックな属性ですが、rep:1 や手作業で増やすのが面倒くさいという方には便利だと思います。

License

MIT License

Author

stakiran