fudist

QFixHowm - howmの基本的な使い方

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

QFixHowm | インストール | 基本的な使い方 | コマンド一覧 | 検索リンクとアクションロック | 予定とTODO | オプション | 快適な使用のために | 更新時間の管理
このページで使用している vim/gvim用howm「QFixHowm」のインストールについては「QFixHowm - vim用howmプラグイン」を参照して下さい。

始めに

メモの作成・閲覧

howmのメモ機能は基本的に以下の3つのコマンドだけでも十分に使えます。
QFixHowm_Keyに 'g' を指定した(デフォルトの)場合、「メモを作成する」は g,c になります。
キーマップのカスタマイズ

 ,c  メモを作成する
 ,l (,m)  最近更新(閲覧)したエントリを探す
 ,s
 メモを検索する

一時的なメモなどで、常に同じファイルにメモを書き込みたい場合は、,uの「クイックメモ」を使用して下さい。
日記として使用する場合は ,<Space>で当日の日付をファイル名とするファイルが開かれます。
QFixHowmで日記を書く

コマンドとしては ,m 「MRUリスト」 ,u 「クイックメモ」 ,<Space> 「日記を書く」がオンメモリで処理するのでもっとも高速です。
エントリにアクセスするには ,m をメインに使用して、必要に応じて ,l で一覧表示するか、,s で検索するというのがおすすめです。

コマンド等は ,, (g,,)でのメニュー画面にも簡易説明で出てきます。
コマンド一覧

一ファイル複数エントリで使用する際の注意

howmは一ファイル一エントリでも一ファイル複数エントリでも使用する事が出来ます。
一ファイル複数エントリで使用すると Emacs版の動作に合わせて、エントリの更新時間としてファイルの更新時間が使用されます。
従ってファイル内の全てのエントリが同じ更新時間として扱われます。
,l コマンドで一ファイル複数エントリでも個別に更新時間を扱いたい場合は以下を参照して下さい。
更新時間の管理

QuickfixウィンドウのコントロールQuickfixウィンドウのON/OFF

 <C-w>,
 QuickfixウィンドウのON/OFF
 <C-w>.
 Quickfixウィンドウに移動する。
 多数のウィンドウを開いていても、一度でQuickfixウィンドウに移動出来ます。
 5<C-w>. のようにカウント指定すると指定サイズの高さに変更されます。
 Quickfixウィンドウ上で実行すると、高さがデフォルトに戻ります。
 q  Quickfixウィンドウを閉じる
操作時の表記<CR>はEnterキーの入力、<C-w>はCtrlキー + w というように読み替えて下さい。

<C-w>, や ToggleQFixWinを使用すると前回のカーソル位置、ソート結果なども保存されます。
QuickfixウィンドウのON/OFFには一応copen,cclose等のQuickfixコマンドが使えますが、できるだけ上記コマンドを使用して下さい。

予定・TODO

予定・TODOはほぼ独立した機能として扱えますが、メモの作成法を覚えてから使用して下さい。
予定とTODO

grepとして使う

QFixHowm は QFixGrepを利用しているためにプレビュー付のgrepとして使用できます。
QFixGrepは汎用的なgrepプラグインですので、howmファイル専用ではありません。
grepとして使用する

デフォルト設定では「固定文字列で検索」は g,f になります。

 ,b  BGrep  現在開いている全てのバッファのみ対象にgrep (無名バッファは検索できない)
 ,f  FGrep  固定文字列(正規表現を使わない)で検索
 ,e  Grep  通常のgrep
 ,v  VGrep
 vimgrepでgrep

grepやvimgrepの上位互換コマンドとして、コマンドモードから使用する事も出来ます。

快適に使う

QFixHowmを常用する場合、検索速度が快適さに直結します。
快適に使用するための設定」も参照してください。

作者の使用法は「QFixHowmの使い方」にまとめました。


QFixHowmの概要

基本機能

 「QFixHowmでメモを書く

 まずはメモを作成します。
 基本はフリーフォーマットのテキストファイルなので、タイトル行以外の書式は自由に扱えます。

 「QFixHowmでメモを探す

 メモを探すには、次の2種類の方法があります。
  •  ファイルの更新時間順か閲覧時間順で一覧表示して探す
  •  文字列を検索して探す

 「メニュー画面

 「サイドバー

 メニュー画面はよく使うリンクやキーワードなど、好きなようにカスタマイズして利用できます。
 基本的に普通のhowmファイルなので ,, コマンドで簡単に呼び出せるテンポラリなメモファイルとして扱うなども可能です。
 サブメニューとして「サイドバー」を使用する事も出来ます。

 「Howmコマンド

 howmのコマンドには全てのバッファで有効なコマンドと、howmファイルのバッファでのみ有効なコマンドがあります。
 

 「Quickfixウィンドウの操作

 Quickfixウィンドウでは、単に検索したファイルを開くだけでなく、絞り込みをしたり、連結表示を行うことができます。
 QuickfixウィンドウのON/OFFには一応copen,cclose等のQuickfixコマンドが使えますが、<C-w>, 等の専用コマンドが用意されていますのでそちらを使用して下さい。


補助・応用機能
  「検索リンク
 検索リンクには gotoリンク、come-fromリンク、Wiki風リンクがあります。
 検索リンク化されたキーワードにカーソルを合わせて<CR>を押すと、そのキーワードを検索します。
 体系的なメモをhowmで作成する時や、ある程度のメモがたまってきた時のメモ間リンクに使用すると便利です。

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

 「マクロアクション

 独自拡張ですがキー操作を自動化するマクロアクションも利用可能です。
 単なる自動化だけでなく、ページ内リンクなどにも使えます。
 「予定とTODO
 howmはメモだけではなく、予定やTODOも扱う事が出来ます。
 予定とTODOは、howmのメモに関する機能とは別の、ほぼ独立した機能としても扱えます。
 基本的なデータ形式はEmacs版と同じですが、予定・TODOの繰り返しなど、独自拡張されている部分があります。

 「快適な使用のために

 「オプション

 QFixHowmを常用するなら是非一度「快適な使用のために」を読んで下さい。
 その他QFixHowmの環境を切り替えたり、一日一ファイルで使う、検索を高速化する、等のちょっと突っ込んだ使い方から各種オプションの設定についても解説しています。

 「Grepとして使用する

 QFixHowm は QFixGrep を利用しているためにプレビュー付のgrepとして扱う事も可能です。
 howmファイル以外の適当なファイルを開いてから、,b や ,f を実行してみて下さい。



このページではvim用howmとして「QFixHowm」 をインストールし、キーマップを g と設定したものとして説明しています。
この場合、新規メモの作成 ,c は実際には g,cと入力します。
キーマップのカスタマイズ

QFixHowmでメモを書く

,cで新規メモの作成


g,cを入力します。
= 
[2009-01-01 01:01]


というようにタイトル行とhowmタイムスタンプが挿入された内容のファイルが作成されます。
デフォルトの設定だとファイル名は作成時刻になっています。

行頭が = と空白の行がタイトル行です。適当なタイトルを入力してください。
QFixHowmの場合、タイトルを入力しなければ、本文から適当に設定されます。
タイトル行(行頭が = の行)が一つ以上有れば他に制限はありません。

基本的にフリーフォーマットなので後は自由に入力してください。
タイムスタンプの前に本文を書いても、後ろに書いてもフリーフォーマットなので問題有りません。
g,n などを使用して複数のメモを一つのファイルに書くこともできます。
一ファイル複数エントリの補助コマンド

何度かg,cで新規メモを作成して適当に入力して普通のファイルと同様の方法で保存してみて下さい。

エントリの時刻表示などのカスタマイズ

デフォルトでは 本家Emacs版準拠で、howmタイムスタンプが付加された状態で新規ファイルが作成されます。
コマンドで挿入されるテンプレートのカスタマイズ」を利用すると、新規ファイルの内容を自由に設定可能です。

たとえば以下のファイルを、QFixHowmと同じディレクトリ(qfixapp/plugin)にコピーすると新規エントリはタイトル記号だけで作成するようになります。
title-keycmd.vim
タイトルやタイムスタンプは保存時に自動で付加されます。


またhowmタイムスタンプを作成時刻ではなく、更新時刻に変更したい場合は次の設定を.vimrcに追加してください。
ファイルを保存すると予定・TODO以外のファイル内のhowmタイムスタンプが全て更新時刻に変更されます。
let QFixHowm_SaveTime   = 1
ファイルの作成時刻はファイルネームからわかります。

ファイルの更新時間の管理の詳しい事は以下を参照して下さい。
更新時間の管理
快適な使用のために


,uでクイックメモを使用する

g,uを入力するとクイックメモファイルを開きます。
常に同じファイルが開かれるので、一時的なメモなどを書くのに使用してください。

クイックメモのファイルはhowm_dir へ作成され、ファイル名は QFixHowm_QuickMemoFileで指定します。
"クイックメモのファイル名
let QFixHowm_QuickMemoFile = "Qmem-00-0000-00-00-000000.howm"
クイックメモに特定の機能や制限はないのでどのように使用しても問題有りませんが、想定している使用例としては以下のようなものがあります。
  1. 何か思いついたらクイックメモをとりあえず開いて、 ,p や ,nでアイディアメモのエントリを追加する。
  2. エントリを編集する。
  3. ある程度アイディアがまとまって独立したエントリファイルにしたくなったら、 ,X や ,W コマンドで別ファイルに独立させる。
クイックメモを一ファイル複数エントリのアイディアノートとして使い、アイディアがまとまったら独立したエントリファイルにするというような方法です。
個別のエントリファイルで使用してもさほど変わりませんが、アイディアが一つのファイルにまとまっていると一覧するのに有利です。
クイックメモに限った話ではありませんが、ファイル内のエントリは g,rs g,rS でhowmタイムスタンプを利用してソートすることも可能です。
一ファイル複数エントリの補助コマンド

%Y-%m等の日付も使用できます。
一月単位のクイックメモにしたいなら以下の通りです。
"クイックメモファイル名
let QFixHowm_QuickMemoFile = 'Qmem-00-%Y-%m-00-000000.howm'

QFixHowmで日記を書く

g,<Space>で日記を書くことが出来ます。
"日記ファイル名
let QFixHowm_DiaryFile = '%Y/%m/%Y-%m-%d-000000.howm'
クイックメモ」との違いはキーマップとファイルの生成規則のみです。
ファイル名を適当に変えて、日記以外のメモとして使用してもかまいません。

またvim/gvim用のカレンダー表示プラグインのcalendar.vimには、日記を書く機能がついていて、外部の日記プラグインも利用できるようになっています。
これを利用して、カレンダー表示からQFixHowmを使用した日記を書くことも出来ます。

QFixHowmとcalendar.vimで日記を書く

日記のみ一覧表示させたい場合は、 ,Aのファイルリストが使えるかもしれません。
ファイルリスト

QFixHowmでメモを探す

メモ(エントリ)を探す方法は、更新時間での一覧表示と文字列検索の2種類有ります。
更新時間での一覧表示関係のコマンドはキーマップを変更可能です。
最近 "作成/更新/閲覧" したファイル表示のキーマップ

デフォルトでは Emacs版の動作に合わせて、エントリの更新時間はファイルの更新時間が使用されますので、一ファイル複数エントリだとファイル内の全てのエントリが同じ更新時間として扱われます。
一ファイル複数エントリでも個別に更新時間を扱いたい場合は以下を参照して下さい。
更新時間の管理


,l で最近更新したエントリを検索

g,cでいくつかファイルを作って保存してから、ノーマルモードでg,lを入力してみてください。
デフォルトでは過去5日以内に更新されたエントリが、更新時間順にプレビュー付きで表示されます。
10g,lのように指定すると過去10日分のエントリが更新時間順に表示されます。
なお10g,lのように期間指定すると、以後はg,lの検索期間も10日に変更されます。.
デフォルトではエントリの更新時間はファイルの更新時間が使用されますので、一ファイル複数エントリだとファイル内の全てのエントリが同じ更新時間として扱われます。
更新時間の管理

起動直後の検索期間は.vimrcで設定できます。
",lコマンドのデフォルト検索期間
let QFixHowm_RecentDays = 5


,L で最近 "作成" されたエントリを howmタイムスタンプで検索

使用方法は ,l と同じですが、ファイルの更新時間ではなく howmタイムスタンプを検索するため、最近 "作成" されたエントリが検索されます。
 3g,L -> 過去3日間に "作成" されたエントリ検索(以降の検索期間は3日に変更されます)
検索期間は ,l と共用されます

また g,Sで 「カーソル位置の howmタイムスタンプを現在時間に更新」したエントリは、最近 "作成" されたエントリとして扱われることになります。
これを利用すると g,L は手動で更新フラグを付ける、「最近 "作成・更新した" エントリの検索」として使用できます。


,m でhowm専用MRUリストを利用して最近 "作成 / 更新 / 閲覧" したファイルにアクセス

g,mでhowmファイル専用のMRUリストが表示されます。
MRUリストは最近編集/閲覧したファイルをアクセス時間順にリストにしたものです。
最近更新したファイルの検索」では更新保存したファイルしか対象になりませんが、MRUリストでは単純に閲覧しただけ、バッファを切り替えただけでも対象になります。
これにより一度検索を利用して閲覧しただけのファイルでも、再び検索で探すような必要が無くなります。

grepなどの処理が入らず、基本的にオンメモリで処理されるので高速です。

howmはファイル名で内容を推定しにくいので、普通のMRUを使用するよりも便利かと思います。
g,rmを使用すると既に存在しないエントリタイトルをMRUリストから削除します。

詳しいオプションや設定は以下を参照して下さい。
howm専用MRUを使用する

<目次へ>


,s で固定文字列を使ってファイルを検索

ノーマルモードで g,s を入力するとデフォルトでカーソル下の文字列が検索文字列に設定された文字列入力画面になります。
howmファイルを開いている場合は、 g,f でも検索出来ます。

<CR>で確定すると固定文字列検索(正規表現を使用しない検索)が実行されます。
形式:ハイツレギスタ社製Tauri 34
↑ここにカーソルがあった場合ノーマルモードでg,sを実行すると"ハイツレギスタ"が検索文字列に設定されます。

デフォルトの検索文字列は<C-u>や<C-w>で削除して変更できます。
<CR>を押すと入力した文字列で、全てのhowmファイルを検索して更新時間順に表示します。


,g で正規表現を使ってファイルを検索

g,g を使うと外部grepでファイルを探します。
外部grepの設定をしていない場合は、内部grep(vimgrep)が使用されます。
g,\g を使うと設定にかかわらず、内部grep(vimgrep)でファイルを探します。
howmファイルを開いている場合は、 g,e でもgrep出来ます。

howm_fileencodingを cp932(Shift_JIS) に設定した場合、一部の日本語文字(ダメ文字)が、正規表現を使用して、grep検索できないことがあります。
正規表現を使用しない検索には問題有りませんので、日本語の検索では基本的に ,s の検索を使用して、どうしても必要な時に ,g の正規表現検索を使用することをおすすめします。
g,\g の vimgrep を使用した検索には問題有りません。

詳しくは 「cygwin/GNU grepの「ダメ文字」対策」 を参照して下さい。


,a で全エントリを一覧表示

g,a を使うと全てのファイルからヘッダ = を検索します。


,A でファイルリストを表示

g,A で「ファイルリスト」が表示されます。
ファイルリストは howm_dir 内のファイルをファイル名で検索して一覧表示するものです。
デフォルトでは全てのファイルが表示されます。


タイトル行/カテゴリ検索

QFixHowmでは通常のタイトル検索を実装していません。
その代わりにQFixHowmではより柔軟に扱える、「エントリフィルタ」を実装しています。
エントリフィルタ」を使用すると、検索単語を含むエントリの一覧が表示されます。
エントリフィルタ」はタイトル検索やカテゴリ検索のようなイメージで扱う事が出来ます。
  1. タイトル/カテゴリ検索したい単語を検索
  2. # で「エントリフィルタ」を実行
  3. 検索単語を含む全てのエントリのタイトルが表示される
この状態で必要なら s コマンドの絞り込みを行ってください。
検索結果を「連結表示」も出来ます。

字義通りのタイトル検索を行いたい場合は、g,g のgrepから直接 ^=.*検索単語 などとしてタイトル検索は行えます。

QFixHowmのエントリ / ファイル削除

エントリや予定・TODO単位で削除したいなら g,x でカーソル位置のエントリや予定・TODO単位の削除が行えます。
またg,Xでカーソル位置のエントリを新規ファイルへ移動することも出来ます。
Quickfixウィンドウ上のコマンド X でも新規ファイルへエントリを移動できますが、絞り込み検索時に編集を行うなどした際、行番号がずれていて意図しない結果になることがあるので注意してください。

ファイル自体を削除したい場合は、howmファイルの中身を全削除して保存するか、Quickfixウィンドウ上で D コマンドを使用して削除します。
エントリの自動整形」を無効にしていないなら、空行のみのファイルを保存しても削除されます。
Quickfixウィンドウ上のDコマンドですが、ファイル単位で削除されますので、一ファイル複数エントリで使用している場合は特に気をつけて使用して下さい。
基本的にはファイルの中身を全削除で消すのが安全です。

メニュー画面

g,,でメニュー画面を表示します。

デフォルトでは howm_dir にあるファイル Menu-00-00-000000.howm がメニューとして表示されます。
Menu-00-00-000000.howmが無い場合は自動的に作成されます。

メニュー画面と言っても、ただのhowmファイルで内容に制限はありません。
よく使う「検索リンク」や「マクロアクション」を、好みに応じて追加してください。
単純にQFixHowmのコマンド表や、簡単に呼び出せるメモ画面として使用してもかまいません。
デフォルトでは howm_dirに作成されるため、検索の対象になります。
メニューファイルの内容が検索にかからないようにしたい場合は、QFixHowm_MenuDir を設定して howm_dir 以外のディレクトリに作成して下さい。
メニュー画面ファイルは何処にあってもリンク作成の対象になるので、よく使うオートリンクをメニューファイルで設定していても問題ありません。

メニュー画面を表示すると同時に、予定とTODOの一覧も表示されます。
予定の表示関係は次のように指定します。
"メニュー画面の予定表示日数
let QFixHowm_ShowScheduleMenu = 10
"メニュー画面の予定・TODO表示に使われる識別子
let QFixHowm_ListReminder_MenuExt = '[-@+!~.]'

また 3g,, の様にカウント指定しても予定表示が有効になります。
予定とTODOの一覧そのものを表示したくない場合は、let QFixHowm_ShowTodoOnMenu = 0 を設定して下さい。
"メニューファイルのディレクトリで、指定しない場合 howm_dir が使用される。
let QFixHowm_MenuDir = ''
"メニューファイル名
let QFixHowm_Menufile = 'Menu-00-00-000000.howm'
"メニュー画面にTODO一覧表示
let QFixHowm_ShowTodoOnMenu = 1

なおメニュー画面はEmacs版と違い、表示システムがQuickfixウィンドウに依存しているため、ほとんど機能がありません。
よく行う操作(特定の単語検索など)はキー操作をスクリプトの形で登録する「マクロアクション」が実装されているので、メニュー画面にコマンドを定義して使用する事になります。
このためメニュー画面よりは「サイドバー」を使用する方が快適に扱えると思われます。

その他のHowmコマンドとQuickfixウィンドウの操作

その他のHowmコマンドとQuickfixウィンドウの操作は以下にあります。
QFixHowm - コマンド一覧


次のページ「QFixHowm - コマンド一覧」  へ移動
前のページ「QFixHowm - vim用howmプラグイン」 へ戻る