Plain Tasks 覚書

## これは何
SublimeTextのプラグイン「[Plain Tasks](https://github.com/aziz/PlainTasks)」の覚え書き
キーバインドはwindowsのもので、挙動はsublimetext 3　のもの  

##ショートカット
### タスク状態
+ マウスカーソルオーバーでクリック操作できる
+ 新しいタスク　<kbd><kbd>ctrl</kbd>+<kbd>Enter</kbd></kbd>もしくは<kbd><kbd>ctrl</kbd>+<kbd>i</kbd></kbd>
+ 完了状態 <kbd><kbd>ctrl</kbd>+<kbd>d</kbd></kbd>
+ タスクキャンセル <kbd><kbd>ctrl</kbd>+<kbd>c</kbd></kbd>

### タグ操作
`@`の後に続く文字列を「タグ」とすることができる。  
キャレットをタグの上に置き、右クリックメニューから「Filter by tags under cursors」を選択することで、指定したタグ以外のタスクをたたむことができる。  
  
+ タグ一覧 <kbd><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>r</kbd></kbd>
+ `@critical` <kbd><kbd>c</kbd>,<kbd>tab</kbd></kbd>
+ `@high` <kbd><kbd>h</kbd>,<kbd>tab</kbd></kbd>
+ `@low` <kbd><kbd>l</kbd>,<kbd>tab</kbd></kbd>
+ `@today` <kbd><kbd>t</kbd>,<kbd>tab</kbd></kbd>

###URL
+ URLにキャレットを置き<kbd><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>u</kbd></kbd>でデフォルトブラウザで開く

### ファイルリンク
+ キャレットをファイルリンクに置き<kbd><kbd>alt</kbd>+<kbd>o</kbd></kbd>でファイルオープン
+ `./`もしくは`.\`に続いてファイルネームを記述。
+ ファイルネームの後ろに行番号列番号を`:`で指定できる `./filename:13:8`
+ ファイル内のシンボルを`>`で指定できる `filename>symbol`

### アーカイブ
+ <kbd><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>a</kbd></kbd>でタスクをアーカイブモードにする
+ <kbd><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>o</kbd></kbd>でタスクをアーカイブファイルに移す
  - アーカイブファイルは　filename.TODO -> filename_archive.TODO となる

### タイムトラッキング
+ <kbd><kbd>s</kbd>,<kbd>tab</kbd>,<kbd>tab</kbd></kbd>でスタートタグと日付を入力 `@started(13-10-25 15:20)`
+ <kbd><kbd>tg</kbd>,<kbd>tab</kbd>,<kbd>tab</kbd></kbd>でトグルタグと日付を入力 `@toggle(14-10-13 16:14)`
  - これは開始しているタスク(`@start`のあるタスク)の中断再開を記録するなどに使える
+ <kbd><kbd>cr</kbd>,<kbd>tab</kbd>,<kbd>tab</kbd></kbd>でクリエイトタグと日付を入力 `@created(14-12-24 15:57)`
+ コマンドパレットから`Tasks: Fold to due tasks`で期限切れや間近のタスクを表示  

## 期日書式
+ <kbd><kbd>d</kbd>,<kbd>tab</kbd></kbd>で期日タグを入力 `@due( )` これは`@due(0)`と同義
+ <kbd><kbd>ctrl</kbd>,<kbd>space</kbd></kbd>で入力補助を出せる
+ 日時を指定する場合は`@due(year-month-day hour:minute)`で表記して以下の省略が使える

|       表記法       |                       意味                       |
|--------------------|--------------------------------------------------|
| `@due(1)`          | 来月1日                                          |
| `@due(--1)`        | 常に今月の1日                                    |
| `@due(5)`          | 直近の5日                                        |
| `@due(2-3)`        | 直近の2月3日                                     |
| `@due(28 23:)`     | 直近の28日の23時。分は現在のもの                 |
| `@due(16.1.1 1:1)` | 2016年1月1日 1時1分 `@due(16-01-01 01:01)`と同義 |

+ 相対で指定する場合は `+[+][number][DdWw][h:m]`の書式で行う
  — `[number]`はオプショナルで後に続く週数(w)日数(d)を表す

|     表記法     |                                  意味                                  |
|----------------|------------------------------------------------------------------------|
| `@due(+)`      | 翌日 `@due( +1)` `@due( +1d)`と同義                                    |
| `@due(+w)`     | 今日から1週間 `@due( +7)`と同義                                        |
| `@due(+3w)`    | 今日から3週間 `@due( +21d)`と同義                                      |
| `@due(++)`     | `@created(date)`タグがある場合その日から1日、なければ `@due(+)` と同義 |
| `@due(+2:)`    | 現在から2時間後 `@due( +2.)`と同義                                     |
| `@due(+:555)`  | 現在から555分後 `@due( +.555)`と同義                                   |
| `@due(+2 12:)` | 現在から2日と12時間後 `@due( +2 12.)`と同義                            |

## 参考
[aziz/PlainTasks · GitHub](https://github.com/aziz/PlainTasks)
[Plain Tasks チュートリアル 雑訳 - Qiita](https://qiita.com/mirai_is_here/private/93fb5e32b80423675aa4)