fudist

QFixHowm - howmの検索リンクとアクションロック

vim/gvim用howmプラグイン「QFixHowm」の使い方についての解説ページ

操作一覧
コマンド一覧

解説ページ
QFixHowm | インストール | 基本的な使い方 | コマンド一覧 | 検索リンクとアクションロック | 予定とTODO | オプション | 快適な使用のために | 更新時間の管理

始めに

このページはhowmの検索リンク(gotoリンク、come-fromリンク、Wiki風リンク)とアクションロックについて書かれています。

 検索リンク   検索リンク化されたキーワードにカーソルを合わせて<CR>を押すと、そのキーワードを検索します。
  体系的なメモをhowmで作成する時や、ある程度のメモがたまってきた時のメモ間リンクに使用すると便利です。

 アクションロック  日付など強調表示されている部分にカーソルを合わせて<CR>を押すと、様々な入力補助機能が使えます。
 検索リンク以外は主に、予定やTODOを扱う場合に利用することになります。

 マクロアクション  QFixHowmでは複数のコマンドの組み合わせ(キー操作)を、マクロにして実行する事が出来ます。
 単純な自動化だけでなく、ファイル内リンクなどにも使えます。



このページではhowmとして QFixHowm をインストールし、キーマップを g と設定したものとして説明しています。
QFixHowmのインストールや使い方については「QFixHowm - vim用howmプラグイン」を参照して下さい。

検索リンク

検索リンク化されてアンダーラインが引かれているキーワードに、カーソルを合わせて<CR>を押すと検索が始まります。
オートリンク上のタグジャンプ」を使用するとcome-fromリンクやWikiスタイルリンクの定義部分に直接ジャンプすることが出来ます。


<<< はcome-fromリンク

come-fromリンクは、キーワードを検索したら最初に参照して欲しい所(キーワードの定義部分など)を定義します。
come-fromリンク( <<< )で定義されたキーワードは全てのファイルでオートリンクされます。

たとえば次のようなhowmファイルを作成して保存します。
= ファイアボール作戦、あるいは新たなる希望
[2009-01-01 01:01]

<<<ドロッセル

形式:ハイツレギスタ社製JUNO-XIV
製造時の設定年齢:14歳
重量:りんご179個分

<<< ゲデヒトニス
形式:ハイツレギスタ社製Tauri 34
製造時の設定年齢:50歳
実年齢:20800歳
趣味:浴室のぬめり取り、スキンケア
 

こうすると、come-fromリンクの文字列( "ドロッセル" と "ゲデヒトニス" )は、全てのhowmファイルでアンダーラインが引かれ検索リンクになります。
検索リンク化されたキーワードにカーソルを合わせて<CR>を押すとキーワードの検索が始まります。

また、検索リンクや g,s などから "ドロッセル" を検索すると、ファイルの更新時間にかかわらず、
<<<ドロッセル
のある行が常に先頭に表示されます。
"ゲデヒトニス" でも同様です。
<<<はタイトルに書いてあってもかまいません。
オートリンク上のタグジャンプ」を使用するとcome-fromリンクやWikiスタイルリンクの定義部分に直接ジャンプすることが出来ます。
同じ定義のcome-fromリンクを複数のファイルで定義してもかまいませんが、基本的には一つだけ定義して使います。


(スクリーンショット)
come-fromリンクによってオートリンクが有効になっている様子。
Quickfixウィンドウでは検索された"ドロッセル"のcome-fromリンクが検索の先頭になっています。


[[ ]]で囲むとWikiスタイルリンク

[[キーワード]]
のように [[ と ]] で文字列を囲むとWikiスタイルリンクになります。

Wikiスタイルリンクはcome-fromリンクと同じように、オートリンクされます。
come-fromリンクとの違いは、検索してもWikiスタイルリンクの定義部分が特別扱いされないので必ずしも一番上には来ないことと、同一行に複数定義可能なところです。

例えば [[$書籍代$]] というWikiスタイルリンクをどこかで定義して、本を購入するたび $書籍代$ として書いておくと、後でリンクから検索して集計出来ます。
この場合come-fromリンクのように定義部分が必ず一番上に来る必要がないので、Wikiスタイルリンクの方が適切ということになります。
オートリンク上のタグジャンプ」を使用するとcome-fromリンクやWikiスタイルリンクの定義部分に直接ジャンプすることが出来ます。

(スクリーンショット)
"Aperture Science"と"トレーニングセンター"、"テスト"がWikiスタイルリンクになっている


>>> はgotoリンク




>>>ファイアボール
のように適当な行の >>> に続けて文字を入力するとアンダーラインが引かれます。
アンダーラインになっている部分にカーソルを合わせて<CR>を押すと、この例では"ファイアボール"が検索対象になります。
このgotoリンクのキーワード "ファイアボール" はオートリンクされないので、他のファイルでは普通の文字列として扱われます。

>>> の後ろが *.txt か *.howm 以外のファイル名やhttp://、 file://、 ftp://で始まる場合はブラウザで開かれます。
*.txt か *.howm のようなファイル名だと vimで開かれます。

カーソル位置のURIをブラウザで開く

また、QFixHowm限定ではありませんが、.vimrc に以下を追加してやると現在のファイル名を簡単に貼り付け可能です。
これで howmファイル間だけでなく、様々なファイルへのリンクが簡単に追加できるようになります。
キー設定は適当に変更してください。
if has('win32')
  nnoremap <silent> gkf :let @*=expand('%:p')<CR>:echo "Copy filename to noname register."<CR>
elseif has('unix')
  nnoremap <silent> gkf :let @"=expand('%:p')<CR>:echo "Copy filename to noname register."<CR>
endif



検索リンクのキーワード

検索リンクを定義しているファイルを削除しただけでは、オートリンクは削除されません。
削除したキーワードがまだリンクになっている場合は、g,rk でキーワードファイルをリビルドして下さい。
検索リンクのオートリンクキーワードファイルは次のオプションで保存場所を指定できます。
let howm_keywordfile     = '~/.howm-keys'

アクションロック

日付変更

日付部分にカーソルを合わせて<CR>を押すと、メニューが出て簡単に日付を変更する事が出来ます。



.  今日の日付に変更する
 01-031,32-999
[+-]数値
 表示日付に入力値を足した日付に変更する
 1-31  入力値の日付に変更する。
 mmdd  変更したい月日を4桁の数値で入力する
 yymmdd  変更したい年月日を6桁の数値で入力する
 yyyymmdd  変更したい年月日を8桁の数値で入力する
1970年より前と2038年以降は、ライブラリの制限で日付のチェックはしません。
日付チェックをしない場合、 2100年13月11日 や 1900年10月40日 などあり得ない数値でもそのまま設定されます。

数値入力せずに<CR>を押したときの挙動は、QFixHowm_DateActionLockDefaultによって変更できます。

 0  何もしない
 1  日付検索
 2  予定一覧表示
 3  TODO一覧表示

デフォルト値は1です。
let QFixHowm_DateActionLockDefault = 1

時刻変更

同様に時刻部分にカーソルを合わせて<CR>を押すと、時刻を変更する事が出来ます。

.  現在の時刻に変更する
 01-059,60-999,01000-02359,2400-
[+-]数値
 表示時刻に入力値(分単位)を足した時刻に変更する。
 +-記号も使用できます。
 +記号の代わりに0を使用する事も出来ます。
 1-59  入力値の時刻に変更する。
 hhmm  変更したい時刻を4桁の数値で入力する



処理リスト


{ } にカーソルを合わせて<CR>を押すと、以下の順にループして変化します。
{ } → {*} → {-}
{_} にカーソルを合わせて<CR>を押すと、次のように変化します。
{_} → [2009-01-01 01:01].
[2009-01-01 01:01]. の日付と時刻部分は今日の日付と時刻になります。

以下の表のように使用すると便利かもしれません。

{ }
 リスト({}の中に空白が必要)
{-}
 保留
{*}
 処理済み
{_}
 未処理


処理リストは、環境オプションを変更する事で、順番を変更したり増やしたり出来ます。
次のように設定してやると、ループはしませんが未処理フラグまで扱えて便利かもしれません。
let QFixHowm_SwitchListActionLock = ['{ }', '{-}', '{*}', '{_}']


ユーザーアクションロック


アクションロックはユーザー定義も可能です。
let QFixHowm_UserSwActionLock = ['[ ]', '[:memo]', '[:pc]', '[:vim]']
上記のように [] の中に , で区切って、スイッチを書くとカテゴリスイッチが実装できます。
: がついているのは、カテゴリ検索するときに誤爆しないようにするためです。
こうしてから:memoなどを検索リンクでキーワードにして、メニュー画面に追加するとカテゴリ検索になります。
  1. QFixHowm_UserSwActionLock
  2. QFixHowm_UserSwActionLock2
  3. QFixHowm_UserSwActionLock3
の3つのユーザーアクションロックが使えます。

マクロアクション

QFixHowmでは複数のコマンドの組み合わせ(キー操作)を、マクロにして実行する事が出来ます。
簡単な例として、ファイル内に #link00 という文字と、次のマクロアクションを書き込みます。
ファイル内リンク <|> $/#link00<CR>
  • <|>以降がマクロアクションの定義になります。
  • <|>の前にはリンクの名称や説明を書いて下さい。
    名称や説明は省略してもかまいません。
「ファイル内リンク」の上で、<CR>を押すと#link00が検索されます。
g,, のメニューの「解説目次」で使用していますので、一度見てみてください。

他にも、たとえば2009年1月に作成したエントリから 「$$$」 を探すなら次のようになります。
いつも howmメモに $$$ に続けて使用した金額と品物を書いているとすると、2009年1月に使ったお金が検索できます。
2009年01月作成のファイルから「$$$」を検索 <|> 0g,s<C-u>$$$<CR>:OpenQFixWin<CR>Sn<CR>s2009-01-[-0-9]\+\.howm<CR>
適当なhowmファイルに上記をコピーして、カーソルを合わせた状態で<CR>を押すと以下の処理が行われます。
  1. マクロアクションの実行時に、自動的にQuickfixウィンドウがオフにされます。
  2. カーソルを行頭へ移動(機能上の意味は特にありません)
  3. g,sでgrep実行(マップリーダーがgに設定されているとき。変更している場合は各自の設定に合わせてください。)
  4. <C-u>でデフォルト設定の文字列をクリア
  5. 「$$$」をセットしてgrep
  6. 文字列がヒットしなかった場合でもQuickfixウィンドウをオープンする
  7. 検索されたファイル名順にソート
  8. sコマンドで2009-01-*.howmを絞り込み
マクロアクションを実行する場合は、常にQuickfixウィンドウがオフにされた状態から始まります。
マクロ内でQuickfixウィンドウの表示を制御したい場合は、<C-w>,や :ToggleQFixWin<CR>などを使用して下さい。

マクロアクションは、一度実行すると再実行可能です。
デフォルトの状態では g,M でマクロアクションの実行になります。

マクロアクションのオプション

マクロアクションの識別子は、 QFixHowm_MacroActionPattern で指定します。
QFixHowm_Key = 'g'、QFixHowm_MacroActionKey = 'M'の時、マクロアクションのコマンドは、g,M になります。
QFixHowm_MacroActionKeyか、QFixHowm_MacroActionPattern のどちらかが、何も定義されていないならマクロアクションは無効になります。

よく使うマクロアクションは g,, で起動するメニュー画面に追加すると便利かもしれません。
"マクロアクションの識別子
let QFixHowm_MacroActionPattern = '<|>'
"マクロアクションを登録するキー
let QFixHowm_MacroActionKey = 'M'


予定とTODOを使う

howmの予定とTODO」にまとめました。

howmはメモだけではなく、予定やTODOも扱う事が出来ます。
予定や締め切り、TODO、リマインダなど、様々な予定を扱えます。

index

次のページ「howmの予定とTODO」 へ移動
前のページ「Howmコマンド一覧」 へ戻る




QFixHowm | インストール | 基本的な使い方 | コマンド一覧 | 検索リンクとアクションロック | 予定とTODO | オプション | 快適な使用のために | 更新時間の管理