QFixHowm - howmの予定とTODOvim/gvim用howmプラグイン「QFixHowm」の使い方についての解説ページ操作一覧 コマンド一覧 予定とTODO一覧 解説ページ QFixHowm | インストール | 基本的な使い方 | コマンド一覧 | 検索リンクとアクションロック | 予定とTODO | オプション | 快適な使用のために | 更新時間の管理 始めに
howmはメモだけではなく、予定や締め切り、TODO、リマインダなども扱う事が出来ます。 |
| 種類 | 識別子 | デフォルト | |
| 予定 | @ | 1日 | 日付がそのまま、優先度になります。 何も指定しない場合は指定日+「デフォルト設定値」日を超えると、優先度は最低に設定され表示されなくなります。 日付が優先度なので、表示期間中の優先度は一日ごとに低くなります。 予定定義時に数値が 2 以上に設定されている場合は「設定値」日の連続予定として扱い、期間中の優先度は常に優先度0日(当日の予定扱い)に設定されます。 期間終了後、最終日+「デフォルト設定値」日を超えると、優先度は最低に設定されて表示されなくなります。 なお、予定定義時に数値が 0 に設定されている場合は、指定日を超えるとすぐに表示されなくなります。 下記の予定では 2009-01-12から2009-01-14まで3日間、当日の予定として表示され、14日から更に「デフォルト設定値」日経過した時点で表示されなくなります。 [2009-01-12]@3 2009年1月12日から3日間続く芋煮会 |
| 締め切り | ! | 7日 | 締め切り7日前(デフォルトの場合)から表示されるようになります。 文字通り、締め切りや納期などに使用します。 指定日の「設定値」日前に優先度が -「設定値」日でアクティブ化されます。 その後、一日ごとに優先度が上がっていきます。 指定日に達しても優先度は上がっていくので、常に一番上に表示されることになります。 |
| TODO | + | 7日 | 指定日から7日間(デフォルトの場合)ぐらいまでの間に実行したい事を登録します。 指定日に優先度が -「設定値」日でアクティブ化されます。 その後、一日ごとに優先度が上がっていきます。 優先度0日より高くなる事はないので、破ってしまった締め切りより優先度が高くなる事はありません。 |
| リマインダ | - | 1日 | やらなくてもかまわないけれど、覚えておきたいような事を登録します。 指定日から1日(デフォルトの場合)の間は優先度0日に設定され、優先度が下がる事はありません。 気になるけれど、買うかどうか決めていない本の発売日などに、気にかけておきたい期間を指定して使用します。 指定日に優先度0日でアクティブ化されます。 指定日から(指定日+「設定値」-1)日の間は優先度0日に設定され、以降は優先度が指定日+「設定値」-1日に固定されます。 従って指定日+「設定値」-1日以降は、相対的に優先度が下がっていきます。 「特定の期間を過ぎてしまったリマインダを削除する」こともできます。 下記のリマインダでは 2009-01-01から 2009-01-03まで3日間、当日の予定として表示され、2009-01-04日以降は優先度が2009-01-03の予定として表示されます。 [2009-01-01]-3 3日間は覚えておきたいリマインダ |
| 浮沈TODO | ~ | 30日 | 適当に優先度が変わるので、いつかやろうと思っている事などを登録します。 指定日に優先度0日でアクティブ化されます。 その後「設定値」日を一周期として、優先度が浮き沈みを始めます。 「設定値」日後には優先度が0日に戻ってきます。 |
| 対処済 | . | なし | 対処済みで不要になった予定やTODOに使用します。 優先度が最低に設定され、一覧表示で表示されなくなります。 先頭に & を付けて予定・TODOの終了指定にも使います。 |
予定・TODOの終了
予定・TODOの定義行に、 &[2009-08-12]. のように終了日を指定する事が出来ます。終了指定日を過ぎると予定は表示されなくなります。
[2009-08-8]@7 &[2009-08-12]. 2009年8月8日から7日間の予定ですが、12日を過ぎると終了します予定・TODOの定義行なら何処にあっても有効です。
時間指定をすると指定時刻以降は表示されません。
[2009-08-8]@7 2009年8月8日から7日間の予定ですが、12日の18:00を過ぎると終了します &[2009-08-12 18:00].
また、日付以外の予定・TODOの定義部分はアクションロックになっています。
単発の予定やTODOはアクションロックで対処済みに変更することが出来ます。
終了日の指定
時刻を指定しない終了日は指定日の翌日ではなく、指定日に終了するようにも出来ます。"終了日指定のオフセット
let QFixHowm_EndDateOffset = -1
[2009-08-08]@7 &[2009-08-12]. 2009年8月8日から7日間の予定ですが、12日になると終了します
予定とTODOのコマンド
キーマップリーダーを g にした場合、予定の一覧表示は g,y になります。| ,y | 予定の一覧表示 |
| ,t | TODOの一覧表示 |
| ,, | メニュー画面の一覧表示 |
| ,. | 今日の日付へ移動(Quickfixウィンドウ上) |
通常のエントリ同様に予定・TODOを検索してからのプレビューやジャンプで予定の定義行を参照できます。
デフォルトでは予定・TODO検索直後はプレビューオフにされていますので、必要なら i でプレビュー表示をオンにしてください。
デフォルトで表示したい場合はQFixHowm_SchedulePreview で変更出来ます。
"予定・TODOでのプレビュー表示ON/OFF
let QFixHowm_SchedulePreview = 0
予定一覧表示では、予定と締め切りが表示されます。
TODO一覧表示では、予定以外のTODO全種類が表示されます。
メニュー画面の一覧表示では、予定・TODOの全種類が表示されます。
それぞれ表示したい予約・TODOは次のオプションで変更可能です。
,t では 予定表示期間が -1 なので、デフォルトで予定は表示されません。
表示する予定・TODOパターンは正規表現ですので、- を指定したいときは一番前に来ないと動作がおかしくなります。
",yでの予定表示期間g,y g,t g,, での予定の表示日数をコマンド実行時にも指定可能です。
let QFixHowm_ShowSchedule = 10
",tでの予定表示期間
let QFixHowm_ShowScheduleTodo = -1
",,での予定表示期間
let QFixHowm_ShowScheduleMenu = 10
",y で表示される予定・TODOパターン
let QFixHowm_ListReminder_ScheExt = '[@!.]'
",t で表示される予定・TODOパターン
let QFixHowm_ListReminder_TodoExt = '[-@+!~.]'
",, で表示される予定・TODOパターン
let QFixHowm_ListReminder_MenuExt = '[-@+!~.]'
365g,y とすると365日分の予定を表示します。
以降は g,y で365日分表示するようになります。
なお同一日付で同一内容の予定・TODOは一つにまとめて表示されます。
実行することなく特定の期間を過ぎてしまったリマインダを削除する事も出来ます。
以下のように設定すると、100日以上たったリマインダは表示しません。
"優先度が今日よりこれ以上低い予定とリマインダを削除する。
let QFixHowm_RemovePriorityDays = 100
リマインダーのソート優先順
"リマインダー種類でのソート優先順
let QFixHowm_ReminderPriority = ['@', '!', '+', '-', '~', '.']
"リマインダーで同一日、同一種類の予定・TODOのソートの正順/逆順
let QFixHowm_ReminderSortMode = 0
予定・TODOの繰り返し
繰り返す予定やTODOは次のように指定します。[2009-01-12]@ 2009年1月12日は、舞踏会の日
[2009-01-12]@@ 2009年1月12日から、毎月12日は舞踏会の日
[2009-01-12]@@@ 2009年1月12日から、毎年1月12日は舞踏会の日
[2009-01-12]@(7) 2009年1月12日から、7日おきに(毎週月曜は)舞踏会の日
| 定義 | 例 |
| 指定日から始まる、月単位の繰り返し [タイムスタンプ]識別子x2 |
[2009-01-12]@@ 2009年1月12日から始まる、毎月12日の予定 |
| 指定日から始まる、年単位の繰り返し [タイムスタンプ]識別子x3 |
[2009-01-12]@@@ 2009年1月12日から始まる、毎年1月12日の予定 |
| 指定日から始まる、指定日間隔の繰り返し [タイムスタンプ]識別子(繰り返し間隔) |
[2009-01-12]@(7) 2009年1月12日から始まる、7日おき(毎週月曜)の予定 |
曜日シフト
もしも繰り返し予定日が日曜と重なったら、土曜に変更したいというような事があると思います。
そのような場合、(-Sun)を指定すると自動で予定日を土曜に変更します。
そのような場合、(-Sun)を指定すると自動で予定日を土曜に変更します。
[2009-01-25]@@(-Sun) 月刊アフタヌーンは毎月25日発売で、25日が日曜なら24日に発売されます。
曜日シフトは ({シフト指定子}{曜日指定})で行います。
| {シフト指定子} |
+ - |
| {曜日指定子} | Sun Mon Tue Wed Thu Fri Sat |
特定曜日の予定を翌日にしたい場合は(+Wed)の様に + を前に、前日にしたい場合は(-Sun)の様に - を前に付けます。
ただし指定間隔の繰り返しを使用する場合だけは、次のように間隔指定の中に書きます。
[2009-01-12]@(5+Mon) 2009年1月12日から、5日おきに舞踏会の日で、もし月曜なら火曜に変更
| 曜日シフト |
例 |
| 予定日が指定曜日なら前日 |
[2009-01-12]@@(-Sun) 毎月12日の予定で、日曜なら土曜に変更 [2009-01-12]@@@(-Tue) 毎年1月12日の予定で、火曜なら月曜に変更 |
| 予定日が指定曜日なら翌日 |
[2009-01-12]@@(+Mon) 毎月12日の予定で、月曜なら火曜に変更 [2009-01-12]@@@(+Sat) 毎年1月12日の予定で、土曜なら日曜に変更 |
| 指定間隔の繰り返しの場合 |
[2009-01-12]@(5-Wed) 2009年1月12日から5日おきの予定で、水曜なら火曜に変更 [2009-01-12]@(9+Fri) 2009年1月12日から9日おきの予定で、金曜なら土曜に変更 |
次のような書き方では、繰り返し予定にはなりません。
[2009-01-11]@(+Sun) 繰り返し予定にならない例2009年1月11日が日曜なので、結果的に2009年1月12日(月)の単発予定として扱われます。
実際には [ や @ などの日付、時刻以外の予定・TODO定義部分にカーソルを合わせて<CR>を押すと、アクションロックが実行されて該当日付に変更されるので、日付を確認して使用するのが望ましいでしょう。
(毎年)毎月などの特定曜日指定
毎月第2水曜の予定等を指定したい事もあると思います。(毎年)毎月特定曜日指定の予定は({数値}*{曜日指定})のように、
数値と * 、 {曜日指定子} で指定します。
| {曜日指定子} | Sun Mon Tue Wed Thu Fri Sat |
| 曜日指定 |
例 |
| 指定月の指定曜日 | [2009-12-12]@(3*Wed) 2009年12月第3水曜の単発予定 |
| 毎月の指定曜日 |
[2009-12-12]@@(1*Wed) 2009年12月12日以降の、毎月第1水曜の繰り返し予定 |
| 毎年特定月の指定曜日 |
[2009-01-12]@@@(2*Mon) 成人の日 2009年12月12日以降の、毎年1月の第2月曜の繰り返し予定 |
次のような書き方では、繰り返し予定にはなりません。
[2009-04-01]@(2*Sat) 繰り返し予定にならない例結果的に2009年4月11日(土)の単発予定として扱われます。
これを利用すると、期間限定の曜日指定に使えます。
たとえば2009年4月の第2土曜と第3土曜だけの予定は日付指定する必要が無く、次のように書けます。
[2009-04-01]@(2*Sat) 2009年4月の第2土曜と第3土曜だけの予定
[2009-04-01]@(3*Sat) 2009年4月の第2土曜と第3土曜だけの予定
実際には [ や @ などの日付、時刻以外の予定・TODO定義部分にカーソルを合わせて<CR>を押すと、アクションロックが実行されて該当日付に変更されるので日付を確認して使用するのが望ましいでしょう。
予定・TODOは予定を終了すると、自動的に次の一番近い未来の予定日へ内部的に変換されます。
締め切りとTODOは自動的に終了しないので、アクションロック等を使用して手動で変更する必要があります。
これは締め切りやTODOが何時終わったかは、howm側からは知り得ないからです。
アクティブ化された予定・TODOは以下のように内部的に変換されます
10g,rdのようにカウント指定可能です。
今日の日付が5月5日だとして、次の予定・TODOの定義行で 3g,rdを実行します。
今日の日付が5月5日なので5月5日から始まります。
繰り返し予定は、定義に応じて展開されます。
月単位の繰り返しなので月単位に展開されます。
単発予定に変更されるとき、曜日シフトも自動的に行われます。
予定・TODOの自動繰り返し仕様
アクティブ化された予定・TODOの繰り返しは自動で内部的に日付変換されます。予定・TODOは予定を終了すると、自動的に次の一番近い未来の予定日へ内部的に変換されます。
締め切りとTODOは自動的に終了しないので、アクションロック等を使用して手動で変更する必要があります。
これは締め切りやTODOが何時終わったかは、howm側からは知り得ないからです。
アクティブ化された予定・TODOは以下のように内部的に変換されます
| 予定 | 今日が予定日ならそのままで、その他は一番近い未来の予定日に変換します。 |
| リマインダ | 今日が予定日ならそのままで、その他は一番近い過去の予定日に変換します。 |
| 締め切り TODO |
曜日シフトだけ行い、常に指定日を使用します。 繰り返し指定はアクションロックの時だけ意味を持ちます。 |
繰り返し予定・TODOの展開
予定・TODOの定義行にカーソルを合わせて、 ,rdを実行すると予定・TODOが展開されます。10g,rdのようにカウント指定可能です。
今日の日付が5月5日だとして、次の予定・TODOの定義行で 3g,rdを実行します。
[2009-01-12]@ 今日は芋煮会この行が3行分展開されて以下のようになります。
今日の日付が5月5日なので5月5日から始まります。
[2009-01-12]@ 今日は芋煮会
[2009-05-05]@ 今日は芋煮会
[2009-05-06]@ 今日は芋煮会
[2009-05-07]@ 今日は芋煮会
繰り返し予定は、定義に応じて展開されます。
[2009-01-12]@@(2*Mon) 毎月第2月曜はパジャマパーティー3g,rdで、この行が3行分展開されて以下のようになります。
月単位の繰り返しなので月単位に展開されます。
単発予定に変更されるとき、曜日シフトも自動的に行われます。
[2009-01-12]@@(2*Mon) 毎月第2月曜はパジャマパーティー
[2009-05-11]@ 毎月第2月曜はパジャマパーティー
[2009-06-08]@ 毎月第2月曜はパジャマパーティー
[2009-07-13]@ 毎月第2月曜はパジャマパーティー
通常の数値オプション
通常の数値オプションも指定できます。
全て組み合わせると次のような指定が出来ます。
全て組み合わせると次のような指定が出来ます。
- このイベントは2009年10月10日から開始される。
- 毎月10日から3日間開催
- 10日が日曜の場合は月曜(11日)から3日間開催される。
[2009-10-10]@@(+Sun)3 パジャマパーティ
アクションロック
日付以外の予定・TODOの定義部分はアクションロックになっています。単発の予定やTODOはカーソルを合わせて<CR>を押すとアクションロックで対処済みに変更されますが、 繰り返し予定では日付が次の一番近い未来の予定日に変わります。
曜日のアクションロックとして、 Sun) Mon) などの曜日表示の上で<CR>を押すと、以下のようにループして変化します。
Sun) → Mon) → Tue) → Wed)→ Thu) → Fri) → Sat)
繰り返し予定・TODOをまとめる
繰り返し予定・TODOは特定の howmファイルにまとめて書いておく事も出来ます。
デフォルトなら howm_dirに、Sche-00-0000-00-00-000000.howm などのファイルを作成して、繰り返し予定・TODOを書くと表示も揃います。
(スクリーンショット:拡大)
Sche-00-0000-00-00-000000.howmに書かれた繰り返し予定が表示されている様子。
デフォルトなら howm_dirに、Sche-00-0000-00-00-000000.howm などのファイルを作成して、繰り返し予定・TODOを書くと表示も揃います。
(スクリーンショット:拡大)
Sche-00-0000-00-00-000000.howmに書かれた繰り返し予定が表示されている様子。
- この予定が表示された日付は 2009年4月21日 で、予定が自動的に更新されている。
- 4月21日の単発予定は曜日指定で日付がずれている。
- 毎月18日の予定は数値オプションによって5日間継続している。
- 祝日が強調表示されている。
予定・TODOの検索場所指定
QFixHowm_ScheduleSearchDir で予定・TODOの検索に使用するディレクトリを指定することが出来ます。これは内部grepしか使えない環境だったり、ファイルが多くなりgrepが遅くなってきて、予定・TODOの表示に時間がかかるような場合に使用する事を想定しています。
指定場所以下しか予定・TODOの検索が行われないので速度的な問題は無くなりますが、予定・TODOを定義する際はファイルのディレクトリに気をつける必要があります。
また仕事用の予定やプライベートの予定を「タイトルタグフィルタ」を使用しないで切り替えたりも出来ます。
予定・TODOの検索場所は以下の順番で最初に見つかった、空でない指定ディレクトリ以下が使用されます。
- QFixHowm_ScheduleSearchDir
- QFixHowm_SearchDir
- howm_dir
howm_dirの下に scheduleというディレクトリを作り、そこに予定・TODOを定義したファイルを置く場合は次のようにします。
"予定・TODOの検索場所指定予定・TODOのファイルを作成する場所は howm_dir以下に設定すると、通常の検索でも引っかかるので便利かと思います。
let QFixHowm_ScheduleSearchDir = howm_dir.'/schedule'
"予定・TODOの検索ファイル名指定
let QFixHowm_ScheduleSearchFile = ''
QFixHowm_ScheduleSearchDir 以下の特定ファイルだけ検索したい場合は更に QFixHowm_ScheduleSearchFile でファイル名を指定します。
デフォルトでは共に空文字列が指定されています。
休日や特別な日を強調表示する
休日の定義ファイルを howm_dir など適当な所へコピーして下さい。
予定・TODO表示の休日名は、色つきで表示されます。
休日定義ファイル
Sche-Hd-0000-00-00-000000.howm
休日名のデフォルトは以下の通りです。
予定・TODO表示の休日名は、色つきで表示されます。
休日定義ファイル
Sche-Hd-0000-00-00-000000.howm
休日名のデフォルトは以下の通りです。
"休日名
let QFixHowm_ReminderHolidayName = '元日\|成人の日\|建国記念の日\|昭和の日\|憲法記念日\|みどりの日\|こどもの日\|海の日\|敬老の日\|体育の日\|文化の日\|勤労感謝の日\|天皇誕生日\|春分の日\|秋分の日\|振替休日\|国民の休日'
ユーザー定義の休日や特別な日を強調表示する事も出来ます。
"ユーザー定義の休日
let QFixHowm_UserHolidayName = '創立記念日\|有給休暇\|代休'
"ユーザー定義の特別な日
let QFixHowm_UserSpecialdayName = '誕生日\|記念日'
創立記念日などを正規表現で適当に追加して下さい。
Emacs版のように繰り返し予定が使えないhowmとhowm_dir を共有する場合、繰り返し予定・TODOの展開を使用して単発予定に変換して下さい。
「繰り返し予定・TODOの展開」
vimで予定・TODOを時間になったらアラーム表示する
,yで表示される予定・TODOのうち時間表示まで指定してあるものは、vimでアラーム表示させる事が出来ます。「vimでhowm形式の予定・TODOをアラーム表示する」
,y や ,t で予定・TODOを表示した後に、 ! を押すと現在表示されている予定・TODOを iCalendar形式で出力することが出来ます。
iCalendar形式は Googleカレンダー などに登録することが可能です。「予定・TODOのエクスポート」
予定とTODOのオプション
予定とTODOのデフォルト値の指定
"予定
let QFixHowm_ReminderDefault_Schedule = 1
"締め切り
let QFixHowm_ReminderDefault_Deadline = 7
"TODO
let QFixHowm_ReminderDefault_Todo = 7
"リマインダ
let QFixHowm_ReminderDefault_Reminder = 1
"浮沈TODO
let QFixHowm_ReminderDefault_UD = 30
特定の期間を過ぎてしまったリマインダを削除する
実行することなく特定の期間を過ぎてしまったリマインダを削除出来ます。以下のように設定すると、100日以上たったリマインダは表示しません。
"優先度が今日よりこれ以上低い予定とリマインダを削除する。
let QFixHowm_RemovePriorityDays = 100
デフォルト値は1です。
予定とTODOの色
色分けはqfixapp/syntax/howm_memo.vimで定義されています。直接 howm_memo.vimを書き換えても問題ないのですが、howmのファイルタイプを変更してから対応するシンタックスファイルを作成する方法もあります。
howmのファイルタイプは howm-mode.vimとの互換性のため、howm_memo に設定されています。
.vimrcに追加することでファイルタイプを QFixHowm_FileTypeで howm など好みのファイルタイプへ変更可能です。
"howmのファイルタイプこの時有効になるのは ファイルタイプ howm のシンタックスです。
let QFixHowm_FileType = 'howm'
qfixapp/syntaxの howm_memo.vimから、howm.vimへファイル名を変更しないと、QFixHowm独自の色分けは有効になりません。
これを利用してhowm.vimにリネームしてから howm.vimを書き換えすると、アップデート時にファイルを上書きしても変更したシンタックスファイルは上書きされません。
タイムゾーン
GMTとの差を指定します。デフォルト値は日本用の -9時間です。
"GMTとの時差
let QFixHowm_ST = -9
デバッグ用オプション
予定やTODOの優先度が、今ひとつよくわからない場合のためにデバッグ用オプションを公開します。let QFixHowmToday='2000-01-10'この環境変数をコマンドモードから設定すると、今日の日付が QFixHowmToday だとして、予定やTODOを扱います。
この例だと西暦2000年1月10日です。
g,c で新規のhowmファイルを作成し、以下を貼り付けてからファイルを保存して下さい。
g,c で新規のhowmファイルを作成し、以下を貼り付けてからファイルを保存して下さい。
[2000-01-01]! 2000-01-01次に、コマンドモードからデバッグ用オプションを設定します。
[2000-01-02]! 2000-01-02
[2000-01-03]! 2000-01-03
[2000-01-04]! 2000-01-04
[2000-01-05]! 2000-01-05
[2000-01-06]! 2000-01-06
[2000-01-07]! 2000-01-07
[2000-01-08]! 2000-01-08
[2000-01-09]! 2000-01-09
[2000-01-10]! 2000-01-10
[2000-01-11]! 2000-01-11
[2000-01-12]! 2000-01-12
[2000-01-13]! 2000-01-13
[2000-01-14]! 2000-01-14
[2000-01-15]! 2000-01-15
[2000-01-16]! 2000-01-16
[2000-01-17]! 2000-01-17
[2000-01-18]! 2000-01-18
[2000-01-19]! 2000-01-19
[2000-01-20]! 2000-01-20
let QFixHowmToday='2000-01-10'
この状態で g,t や g,y を実行すると、 (730554) の様にテキストの末尾に優先度が表示された状態で予定やTODOが表示されます。
作成したファイルに予定やTODOを追加して、どの様に表示されるか確認して下さい。
次のページ「オプション」 へ移動
前のページ「howmの検索リンクとアクションロック」 へ戻る
より詳細な予定・TODOの目次
作成したファイルに予定やTODOを追加して、どの様に表示されるか確認して下さい。
次のページ「オプション」 へ移動
前のページ「howmの検索リンクとアクションロック」 へ戻る


