fudist

QFixHowm - コマンド一覧

vim/gvim用howmプラグイン「QFixHowm」のコマンド一覧表

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

設定とオプション

設定やオプションについては以下を参照して下さい。
オプション
快適な使用のために

Howmコマンド

キーマップリーダーに 'g' を指定した場合、「新規ファイルを作成」は g,c になります。
キーマップのカスタマイズ

Howmコマンド(全てのバッファで有効)

,c  新規ファイルを作成
,u  クイックメモを開く
 常に同じファイルが開かれるので、一時的なメモなどを書くのに使用します。
,<Space>
 「QFixHowmで日記を書く
,l
 「最近 "更新" したエントリを検索」(デフォルトでは過去5日間)
 カウント指定すると過去カウント日分の更新エントリを検索する。
 3g,l -> 過去3日分の更新エントリ検索(以降の検索期間は3日に変更される)
,L 「最近 "作成" されたエントリをhowmタイムスタンプで検索」(デフォルトでは過去5日間)
 カウント指定するとhowmタイムスタンプを使って、過去カウント日間に "作成" されたエントリを検索する。
 3g,m -> 過去3日間に "作成" されたエントリ検索(以降の検索期間は3日に変更される)
 検索期間は,l と共用されます。
 ,m  「howmのMRUリスト表示
 最近 "閲覧/作成/更新" したリストを表示する。
 ,lと違いファイルの更新保存だけでなく、閲覧(バッファ切替)だけでも対象になります。
 またgrepを使用せずにオンメモリで処理されるので ,l より高速です。
,s  エントリを正規表現を使わないで検索
,g  エントリをgrepする
,\g  エントリをgrepの設定にかかわらずvimgrep使用でgrepする
,a  過去エントリを全て検索
,A ファイルリストを表示する。
 QFixHowm_FileListで指定したファイルをファイル名で検索して一覧表示します。
 デフォルトでは全てのファイルが表示されます。
,rr 「エントリのランダム表示
 3g,rrの用にカウント指定すると指定した数のエントリをランダム表示します。
,rR 「エントリのランダム表示」用のエントリリストファイルをリビルドします。
,i 「サイドバー」をON/OFF
 ,k 「Quickfixウィンドウの保存と読込
 保存したQuickfix画面を読み込む。
,rm  howmのMRUリストから行番号がずれたエントリタイトルを修正して、もう存在しないタイトルを削除する
,rk  オートリンクキーワードファイルをリビルドする
 ,,  メニュー画面を表示する

howmバッファローカルコマンド


,d  現在日付を挿入
,T  現在時刻を挿入
,o  「アウトラインモード
 デフォルトでは zi コマンドで折りたたみがON/OFFされます。
,w  「更新時間の管理」を使用していても、タイムスタンプを変更せずにファイルを保存する。
 連結表示バッファでは、スクラッチバッファから通常のバッファに変更して保存します。
,S  「カーソル位置の howmタイムスタンプを現在時間に更新
 <C-]>  オートリンク上で実行すると定義行へタグジャンプする
 うまくジャンプできない場合は、ヴィジュアルモードで選択してからジャンプしてください。
 候補が複数ある場合は g<C-]>を使用するとジャンプ先を選択可能です。
,rd
 予定・TODOの定義行で実行すると、指定カウント分の予定・TODOに展開する

一ファイル複数エントリで使用するhowmバッファローカルコマンド

,C  現在行の次に新規エントリを追加する。
 エントリ追加にはQFixHowm_Key_Cmd_C で定義されるコマンドが使用される。
,n  現エントリの次に新規エントリを追加する。
 エントリ追加にはQFixHowm_Key_Cmd_n で定義されるコマンドが使用される。
 3g,n のようにカウント指定すると指定したエントリ数後へ追加します。
,N  現バッファの最後に新規エントリを追加する。
 エントリ追加にはQFixHowm_Key_Cmd_N で定義されるコマンドが使用される。
,p
 現エントリの前に新規エントリを追加する。
 エントリ追加にはQFixHowm_Key_Cmd_p で定義されるコマンドが使用される。
 3g,p のようにカウント指定すると指定したエントリ数前へ追加します。
,P  現バッファの先頭に新規エントリを追加する。
 エントリ追加にはQFixHowm_Key_Cmd_P で定義されるコマンドが使用される。
,S 「カーソル位置の howmタイムスタンプを現在時間に更新
,o  「アウトラインモード
 デフォルトでは zi コマンドで折りたたみがON/OFFされます。 
,w  「更新時間の管理」を使用していても、タイムスタンプを変更せずにファイルを保存する。
 連結表示バッファでは、スクラッチバッファから通常のバッファに変更して保存します。
,W  一ファイル複数エントリや連結表示されたファイルをを分割して保存する。
 ビジュアルモードの選択時には、選択範囲内のエントリのみ出力されます。
 「分割保存
,x  現在位置のエントリや予定・TODOを削除する。 
,X  現在位置のエントリや予定・TODOを新規howmファイルへ移動する。
 「QFixHowmの自動生成ファイル
,rs
 現バッファのエントリをhowmタイムスタンプの新しい順番でソートする。
 「更新時間の管理」を使用すると、更新時間順になります。
,rS  現バッファのエントリをhowmタイムスタンプの古い順番でソートする。
 「更新時間の管理」を使用すると、更新時間順になります。

予定・TODO」のコマンド
,y  予定の表示。
 カウント指定すると指定した日数の予定を表示する。
 以降はデフォルトでカウント指定した日数の予定を表示するようになる。
,t  TODOの表示。
 カウント指定すると指定した日数の予定も表示する。
 以降はデフォルトでカウント指定した日数の予定も表示するようになる。

Grepとして使用する」コマンド(全てのバッファで有効)

,f
 現在編集中のファイルと同じディレクトリをカレントディレクトリとしてFGrep!を実行する。
 現在編集中のバッファがhowmファイルなら ,s が実行される。
,e
 現在編集中のファイルと同じディレクトリをカレントディレクトリとしてGrep!を実行する。
 現在編集中のバッファがhowmファイルなら ,g が実行される。
,v
 現在編集中のファイルと同じディレクトリをカレントディレクトリとして VGrep!を実行する。
 現在編集中のバッファがhowmファイルなら ,\g が実行される。
 ,b  vimで現在開いている全てのバッファからのみの検索BGrepを行う。

Quickfixウィンドウの操作

QuickfixウィンドウのON/OFFには一応copen,cclose等のQuickfixコマンドが使えます。
ただ<C-w>, や ToggleQFixWinを使用すると前回のカーソル位置、ソート結果なども保存されるので、<C-w>, かToggleQFixWinを使用してください。
キー操作の表記<CR>はEnterキーの入力、<C-w>はCtrlキー + w というように読み替えて下さい。


Quickfixウィンドウのキー操作

<C-w>,  Quickfixウィンドウのオープン/クローズ
<C-w>.  Quickfixウィンドウへ移動
 多数のウィンドウを開いていても、一度でQuickfixウィンドウに移動出来ます。
 5<C-w>. のようにカウント指定すると指定サイズの高さに変更されます。
 Quickfixウィンドウ上では、Quickfixウィンドウの高さをデフォルトに戻します。
 q  Quickfixウィンドウのクローズ
<CR>
 ファイルを開く。
 3<CR>のように番号を指定すると対応する行のファイルを開く。
<S-CR>  <CR> とは逆の画面分割方法でファイルを開く
<C-CR>  ファイルを開いてから、指定行に移動しないで最後の編集場所へ移動
s  「絞り込み検索
 文字列を指定して絞り込み。
 <C-R>/で検索文字列が貼り付け可能。
 <C-u>、<C-w>、ヒストリも有効。
 画面に表示されている部分(各行1kバイト)のみが対象になります。
u  絞り込みのアンドゥ
<C-r>  絞り込みのリドゥ
U  絞り込みを全て元に戻す
J  ジャンプ後にQuickfixウィンドウを閉じる/閉じないをトグル
i  プレビュー表示ON/OFF
I  ファイルタイプのハイライト表示ON/OFF。
 環境やファイルサイズによっては重くなるので、その場合はOFFにしてください。
S  「ソートの種類
 更新時間順、名前順などのソート切替。
 絞り込みは初期状態になります。
<C-q>  「Modifiableモード
 Modifiableモード ON/OFF。
 Quickfixウィンドウを書き換え可能にします。
 A
<C-o>
 「Quickfixウィンドウの保存と読込
 現在のQuickfixウィンドウを保存します。
 3Aのようにカウント指定すると、ファイル名に指定カウントを付加して保存します。
 ~/.qfgrep.txt → ~/.qfgrep3.txt
 O
<C-i>
 「Quickfixウィンドウの保存と読込
 保存されているQuickfixウィンドウを読み込む。
 3Oのようにカウント指定すると、ファイル名に指定カウントを付加して読み込みます。
 ~/.qfgrep.txt → ~/.qfgrep3.txt
<F5> QFixGrep,QFixHowmの結果が表示されている場合「エントリのランダム表示」の実行
 @  「連結表示
 ファイルを連結して、一つのファイルにします。
 #  「エントリフィルタ
 検索結果のサマリーをエントリタイトルに変更して、同一エントリの場合は一つにまとめます。
 エントリフィルタはタイトル検索やカテゴリ検索の一種として扱えます。
 % 検索結果のサマリーをエントリタイトルに変更します。

 !

 「予定・TODOのエクスポート
 表示中の予定・TODOをファイルiCalendar形式で出力する。
 (対応プラグインを入れた時のみ有効)
 R  Quickfixウィンドウで選択されているファイルを howm_dir に移動する。
 D  Quickfixウィンドウで選択されているファイルを削除する。
 howmファイルはファイルの中身が何もない状態で保存しても削除されます。
 ファイル単位ですので、一ファイル複数エントリの場合は特に気をつける必要があります。
 基本的にはファイルの中身を全削除して消すのが安全です。
 X カーソル位置のエントリを新規ファイルへ移動する。
 絞り込み検索時にファイルを編集すると、対応行がずれていることがあるので注意してください。
 ,.  現在日付の行へ移動(予定・TODO表示時)
 キーマップリーダー. (g.)でも移動します。
 & 「エントリをユーザ定義コマンドで変換する
 ユーザ定義のコマンドで、カーソル位置のエントリを処理する。
 ビジュアルモード選択時は選択されたエントリが対象になります。


QuickfixウィンドウのON/OFF

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

 <C-w>,
 QuickfixウィンドウのON/OFF
 <C-w>.
 Quickfixウィンドウに移動する。
 多数のウィンドウを開いていても、一度でQuickfixウィンドウに移動出来ます。
 5<C-w>. のようにカウント指定すると指定サイズの高さに変更されます。
 Quickfixウィンドウ上で実行すると、高さがデフォルトに戻ります。
 q  Quickfixウィンドウを閉じる

ToggleQFixWinでQuickfixウィンドウのON/OFFが出来ます。
.vimrc設定例
"QuickfixウィンドウをON/OFF
"この設定例ではgsが使用できなくなります。好みに応じて変更して下さい。
nnoremap
<silent> gs :ToggleQFixWin<CR>

 ToggleQFixWin
 QuickfixウィンドウをON/OFF
 OpenQFixWin  QuickfixウィンドウをON
 CloseQFixWin  QuickfixウィンドウをOFF
 MoveToQFixWin  Quickfixウィンドウへ移動
 ResizeQFixWIn Quickfixウィンドウを元のサイズに戻す


ファイルを画面分割して開くことが出来ます。
"ファイルを画面分割して開く/開かない。
let QFix_FileOpenMode = 0
<S-CR>を使うと<CR>とは逆の画面分割方法でファイルを開く事が出来ます。

ファイルを分割で開いたときの最小ウィンドウ高さを指定可能です。
0なら全てのウィンドウサイズを同じ高さにします(デフォルト)
ウィンドウを水平分割するタイプのプラグインを使用するなら、高さを指定すると相性が改善される事があります。
"ファイルを分割して開いたときの最小ウィンドウ高さ指定
let QFix_WindowHeightMin = 10


絞り込み検索

Quickfixウィンドウでは絞り込みが出来ます。

sを押すと入力モードになるので、何か適当な文字列(たとえばファイル名)を入れてみてください。
入力した文字列で絞り込まれます。
元に戻したい場合はuでアンドゥ出来ます。
最初の状態に戻すのはUです。

注意

Quickfixウィンドウに絞り込みを行っていて画面に表示されている時にvimを終了しようとすると、
「変更を"無題"に保存しますか?」
というメッセージが出ることがあります。
これは絞り込み中のQuickfixバッファは編集中と見なされるためです。
'n'を選ぶか、Quickfixウィンドウを閉じてから終了するか、'U'コマンドで絞り込みを初期状態に戻してから終了するかのいずれかを選択します。

また基本的に画面がおかしいと思ったら、アンドゥ(特にU)してください。
例えば絞り込み中に拡張Quickfixに対応していないgrep等(helpgrep等)が実行されると、画面は絞り込み中の物が表示され続けることがあります。


ソートの種類



Quickfixウィンドウで S を押すとソートの種類を聞いてきます。
m,n,t のいずれかを入力します。
Sort type? (r:reverse)+(m:mtime, n:name, t:text h:howmtime) : 
ソートの種類
 m
 ファイルの更新時間 (mtime)
 n  ファイル名 (name)
 t
 表示されているテキスト内容 (text)
 h howmタイムスタンプ(howmtime)

逆順にしたい場合は rt のように、最初に r を付けて下さい。


連結表示

@で現在Quickfixウィンドウに登録されているエントリの内容を全てまとめて別バッファに表示できます。
絞り込みやソートを行って、ばらばらのファイルにある内容をまとめたいときに便利です。
また3@の様に現在行から個数指定したり、ビジュアルモードで選択した状態で @ を押すと選択したファイルだけ連結表示します。

連結表示のバッファはスクラッチバッファ(ファイルと関連がなく、書き込まれる予定のないバッファ)として作成されます。
この時バッファ名としては通常の新規howmファイルと同じ名前が使用されます。
連結表示バッファを保存したい場合は、 g,wで保存するか、以下を実行してから保存してください。
:setlocal buftype=
連結表示して保存したファイルは、g,Wで個別のエントリに保存し直すことも可能です。

また<C-q>でQuickfixウィンドウの編集可/不可を切り替えることが出来ます。
Modifiableモードは連結表示の際、不要なエントリを削除したい時や順番を入れ替えたい時などに使用することを想定しています。
通常のバッファと同じようにQuickfixウィンドウが編集できるのでddで削除してpで貼り付けして、Quickfixウィンドウでの表示順を手動で入れ替え可能です。

(スクリーンショット)
"レジスタ"を検索して、 @ で連結表示した所。

連結表示バッファを複数作成したくない場合は連結表示バッファ名を指定してください。
連結表示バッファ名指定をすると常に指定名の一つのみ使用されます。
let QFixHowm_MergeEntryName = "Merg-00-0000-00-00-000000.howm"
連結バッファ名を指定しない場合は以下の生成規則が使われます。
QFixHowmの自動生成ファイル

連結表示は「アウトラインモード」を利用すると、エントリをタイトルで折りたたむことが出来て便利です。




一ファイル複数エントリや連結表示のエントリを分割保存する

一ファイル複数エントリや連結表示されたファイル内のエントリを分割して保存出来ます。
分割したいファイルを開いて ,W か、分割したいエントリが含まれる部分をビジュアルモードで選択してから ,W を実行すると、エントリ単位で新規ファイルが howm_dir へ作成されます。
QFixHowmの自動生成ファイル


Modifiableモード

<C-q>でQuickfixウィンドウを書き換え可能にして、通常のバッファと同じ編集作業が出来ます。
基本的に行単位の編集でないと意味がありませんが、自分で作成したソート、編集などが使用できます。
例えば、絞り込み検索とは逆に「指定した単語を含まない行を抽出したい」場合は、<C-q>を押してから次の様にします。
:g/fuga/d
この例では fuga を含む行が削除されます。

dd で削除、  p で貼り付けするなどして順番の入れ替えも可能です。
ファイル名部分を編集するとジャンプできなくなるので注意して下さい。
おかしくなったら U や u で全て元に戻せます。

これを利用して連結表示するファイルを柔軟に選択する事が出来ます。


エントリフィルタ

howmファイルを文字列検索してから、Quickfixウィンドウで # を押すと、エントリフィルタが実行されます。
エントリフィルタを使用すると、検索単語を含むエントリの一覧が表示できます。
  1. 単語を検索
  2. # で「エントリフィルタ」を実行
  3. 検索単語を含む全てのエントリのタイトルが表示される
この状態で必要なら s コマンドの絞り込みを行ってください。
検索結果を「連結表示」も出来ます。

エントリフィルタはタイトル検索やカテゴリ検索の一種として扱うと便利です。

たとえば「QFixHowm」についてのエントリをたくさん書きためていたとして、「QFixHowm」について書いてあるエントリを一覧表示したいとします。
単純に「QFixHowm」を検索するとたくさんの行がヒットするはずです。
ここでエントリフィルタを実行すると、同じエントリにある検索結果は一つにまとめられて、エントリのタイトル行のみが残ります。
これにより「QFixHowm」というカテゴリ設定をしていなくても、「QFixHowm」というカテゴリを設定していたかのように扱う事が可能になります。
このままでもタイトル検索に近い結果になっていると思いますが、この状態で s コマンドを使用してタイトル行検索の絞り込みも出来ます。

よく使うエントリフィルタ検索はマクロアクションと組み合わせて、メニュー画面に登録しておくのもおすすめです。

% コマンドは検索結果のサマリーのみをエントリタイトルに変更します。


Quickfix画面の保存と読込

Quickfix上のコマンド

<C-w>. Quickfixウィンドウの高さをデフォルトに戻す。
A
<C-o>
 現在のQuickfixウィンドウを書き込む。
 3Aのようにカウント指定すると、ファイル名に指定カウントを付加して保存します。
 ~/.qfgrep.txt → ~/.qfgrep3.txt
O
<C-i>
 保存されているQuickfixウィンドウを読み込む。
 3Oのようにカウント指定すると、ファイル名に指定カウントを付加して読み込みます。
 ~/.qfgrep.txt → ~/.qfgrep3.txt

QFixHowmの場合は g,kでも保存した結果を読み込めます。

何かgrepしてからQuickfixウィンドウ上で A を押すと現在のgrep結果が保存されます。
その後に別のgrepを行ってから O を押すと、保存した検索結果が表示されます。

保存するファイルはMyGrep_Resultfileで指定します。
"現在登録されているGrep結果を保存するファイル
let MyGrep_Resultfile = '~/.qfgrep.txt'
コマンドで読込、書込も出来ます。
ファイル名を指定しないと、MyGrep_Resultfileが使用されます。
必要なら適当なキーにマップするなどして使用してください。

 保存されているQuickfixウィンドウを読み込む  :MyGrepWriteResult ファイル名
 現在のQuickfixウィンドウを書き込む  :MyGrepReadResult ファイル名


,S でカーソル位置のhowmタイムスタンプを現在時刻に更新

,S 実行するとカーソル位置のエントリの howmタイムスタンプを現在時刻へ更新します。

= エントリのタイトル行1
[2000-01-01 01:01]
  このエントリのhowmタイムスタンプは更新時間へ変更される
本文■ ←カーソルはこの位置にある
なんたらかんたら

= エントリのタイトル行2
[2000-01-02 02:01←このエントリのhowmタイムスタンプ変更されない
本文その2



エントリのランダム表示

Howmコマンド(全てのバッファで有効)

,rr  「エントリのランダム表示
 3g,rrの用にカウント指定すると指定した数のエントリをランダム表示します。
,rR  「エントリのランダム表示」用のエントリリストファイルをリビルドします。

Quickfixウィンドウ上の操作

 <F5>
 QFixGrep,QFixHowmの結果が表示されている場合「エントリのランダム表示」の実行

g,rr を実行するか、 QFixGrep、QFixHowmの検索結果が表示されている Quickfixウィンドウ上で <F5> を押すと全てのエントリから、ランダムにエントリを表示します。
10g,rrの用にカウント指定すると、指定した数のエントリをランダム表示します。

表示される可能性のある全てのエントリのリストはQFixHowm_RandomWalkFileに保存され、一度に表示する数はQFixHowm_RandomWalkColumnsで指定できます。

"ランダム表示用のエントリリスト保存ファイル
let QFixHowm_RandomWalkFile = '~/.howm-random'
"ランダム表示するエントリ数
let QFixHowm_RandomWalkColumns = 10
エントリリストファイルは作成時から10日以上経つと自動更新されますが、必要ならば g,rRを実行して、エントリリストファイルを再作成してください。
0に設定すると自動更新はしません。
"ランダム表示用エントリリストファイルを自動更新
let QFixHowm_RandomWalkUpdate = 10

またメニュー画面でエントリのランダム表示を行いたい場合は、 QFixHowm_ShowTodoOnMenu に 2 を設定します。
"メニュー画面でエントリのランダム表示を行う
let QFixHowm_ShowTodoOnMenu = 2

grepとして使用する

QFixHowm は QFixGrep を利用しているためにプレビュー付のgrepとして扱う事も可能です。
howmファイル以外の適当なファイルを開いてから、,f や ,b を実行してみて下さい。
実行後、検索文字列と、検索対象のファイルを聞いてきますので、適当に設定してから<CR>で確定して下さい。
<C-u>や<C-w>でデフォルトの文字列は削除可能です。

なにかファイルを開いてから、以下のいずれかで検索を実行してみて下さい。
カーソル下の単語が自動的に取り込まれて、検索文字列入力画面になります。
デフォルトではキーマップリーダーに g が設定されているので、 g,e でGrepが実行されます。
ビジュアルモードで範囲選択している場合は、選択範囲の文字をgrepします。
またコマンドモードから各種オプションを指定して実行する事も出来ます。

コマンド一覧

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

 ,E Grepadd  通常のgrep
 既にQuickfixウィンドウに登録されている結果は削除しない。
 ,F FGrepadd  正規表現を使わないで検索
 既にQuickfixウィンドウに登録されている結果は削除しない。
 ,V VGrepadd
Vimgrepadd
 vimgrepでgrep
 既にQuickfixウィンドウに登録されている結果は削除しない。
 ,B BGrepadd  現在開いている全てのバッファのみを対象にgrep (無名バッファは検索できない)
 既にQuickfixウィンドウに登録されている結果は削除しない。

QuickfixウィンドウのON/OFFは<C-w>, かToggleQFixWinを使用してください。
QuickfixウィンドウのON/OFF
Quickfixウィンドウ上の操作は「拡張Quickfixウィンドウの操作」にまとめてあります。

検索するファイルの種類を指定する際は、*.vim *.txt のように 複数の種類を指定可能です。
grep後、自動的にQuickfixウィンドウが開き、検索レジスタにはgrepした文字列が登録されます。
検索するファイルを指定する際、**/*.vimのように **/を付けて指定すると再帰的にgrepを行います。

gvimではメニューのツール(T)から実行する事も出来ます。

コマンドモードから実行する

コマンドモードからもGrepを実行できます。
:Grepは grepprgで指定されているコマンドが実行されます。
したがって:grepの完全上位コマンドとして扱えるので、使用できるオプションも :grepと全く同じになります。
grepprg に外部grepを指定している場合、再帰検索には -r など外部grepのオプションを指定してください。
:Grep -r searchword *.vim
:Vimgrepは grepprg にかかわらずvimgrepと同等のコマンドになります。

また:Grep! のように'!'を指定すると、開いているファイルと同じディレクトリを基準にgrepします。
したがって autochdir やプラグインでカレントディレクトリをファイルと同じディレクトリに設定している場合に違いはありません。


,f ,e で外部grepを使用している時のファイルの文字エンコード

外部grepを使用する場合、検索対象ファイルの文字エンコードは、現在開いているファイルと同じと仮定して実行されます。
よって異なる文字エンコードのファイルは検索されません。
vimgrepならファイルエンコードは自動判別されます。

検索リンクとアクションロック

howmの検索リンクとアクションロック」 にまとめました。

検索リンクを使うと体系だったメモの作成や、特定の単語の抽出が簡単になります。
日付の入力補助などのアクションロックについても解説しています。



次のページ「howmの検索リンクとアクションロック」  へ移動
前のページ「QFixHowm - 基本的な使い方」 へ戻る