QFixHowmはEmacsのhowmと同等の機能を、Vim上でプラグインとして提供するものです。
QFixHowmを使うことでローカルにwiki形式で情報を整理したり、予定やTODOを管理できます。
導入方法に関しては過去の記事をご参照ください。
qfixhomwの導入・使い方
これまで一時メモなど簡単な使い方しかしていなかったのですが、この度QFixHowmを使ったTODO管理に本気で取り組んでみました。
その際の設定や操作など主要なTipsをメモしておきます。
まずQFixHowm/QFixGrepの結果表示にはQuickFixウィンドウを使用する設定にしています。
let QFix_UseLocationList = 0
こうしておくと g,q でカレンダー表示しながら g,y や g,t で予定・タスクを一覧表示したときに、以下画像のように良い感じの画面構成になってくれます。
ロケーションリストを使う設定だとカレンダー画面の方に予定一覧が出てしまい、とても使いづらいです。。
また g,y の予定一覧は60日分を表示する設定にしています。
これは経験則的に2ヶ月分の予定が分かれば個人的には十分だからです。
let QFixHowm_ShowSchedule = 60
カテゴリータグも設定しています。
私はページではなく予定やタスク毎にタグを付与しています。
" ※実際はもっと多くのタグを設定しています。
let QFixHowm_UserSwActionLock = ['[ ]', '[:work]', '[:private]']
これでアクションロックが使えるので、[ ] と入力した状態でEnterキーを押すとタグが切り替わります。
さらに以下のようにgotoリンクをどこか適切なページへ書いておいて、タグ毎に予定・タスクを一覧化できるようにもしています。
>>>:<タグ名>
※参考:gotoリンクとは
g,y や g,t による予定・タスク一覧化の際はキャッシュを使いたくないので、キャッシュを無効化しています。
理由はこれらコマンドを使うときは大抵TODO一覧を更新した場合が多いためです。
let QFixHowm_ListReminderCacheTime = 0
TODOを更新した際に最新の状態で予定・タスクを一覧化するとき、デフォルトでは g,ry や g,rt と入力します。
rを入力することに対して少し煩わしさを感じた次第です。。
最後に、g,y や g,t による予定・タスク一覧化で検索する対象ファイルは1ファイルに限定しています。
今後QFixHowm内のページが増えていったときに、検索速度が比例して増加するのを防ぐのが目的です。
"let QFixHowm_ScheduleSearchFile = '<your path to todo file>'
また本設定に伴い、予定・タスクはすべて1ファイルに追記しています。
とは言え行数が増え続けるのは嫌だったので、完了した予定・タスクは別ファイルに移動しています。
ちなみにタスクを追記しているファイルには mW といった形でマークを設定しています。
これで ‘W と入力するだけでタスク一覧ファイルを開け、すぐに予定・タスクを追記できます。
これまでに紹介した設定も含め、QFixHowmに関連する設定は以下のようになっています。
" qfixhome-masterにruntimepathを通す
set runtimepath+=<path to your qfixhowm-master>
" キーマップリーダー
let QFixHowm_Key = 'g'
" howm_dirはファイルを保存したいディレクトリを設定
let howm_dir = 'C:\howm'
let howm_filename = '%Y/%m/%Y-%m-%d-%H%M%S.md'
let howm_fileencoding = 'utf-8'
let howm_fileformat = 'dos'
" キーコードやマッピングされたキー列が完了するのを待つ時間(ミリ秒)
set timeout timeoutlen=3000 ttimeoutlen=100
" QFixHowmのファイルタイプ
let QFixHowm_FileType = 'markdown'
" タイトル記号を # に変更する
let QFixHowm_Title = '#'
" QuickFixウィンドウでもプレビューや絞り込みを有効化
let QFixWin_EnableMode = 1
" QFixHowm/QFixGrepの結果表示にロケーションリストを使用する/しない
let QFix_UseLocationList = 0
" ファイルパスのバックスラッシュをスラッシュにする
set shellslash
" textwidthの再設定
au Filetype qfix_memo setlocal textwidth=0
" 休日定義ファイル
let QFixHowm_HolidayFile = '<your path to qfixhowm>\qfixhowm-master\misc\holiday\Sche-Hd-0000-00-00-000000.cp932'
"オートリンクでファイルを開く
let QFixHowm_Wiki = 1
" wiki保存場所
let QFixHowm_WikiDir = 'wiki'
let SubWindow_Title = "WikiMenu"
" ,yでの予定表示期間
let QFixHowm_ShowSchedule = 60
" カテゴリタグの定義
let QFixHowm_UserSwActionLock = ['[ ]', '[:work]', '[:private]']
"予定・TODO表示のキャッシュ保持時間(秒)
let QFixHowm_ListReminderCacheTime = 0
"予定・TODOの検索ファイル名指定
"let QFixHowm_ScheduleSearchFile = '<your path to todo file>'
以上です。
久々にVimの設定を見直す良い機会となりました。