fudist

QFixHowm - オプション

vim/gvim用howmプラグインのオプション

このページはvim/gvim用howmプラグイン「QFixHowm」のオプション設定についての解説ページです。
howmの基本的な使い方は「 howmの基本的な使い方」を参照して下さい。

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

index


始めに


このページではQFixHowmのキーマップを g と設定してインストールしたものとして説明しています。
違うキーに設定した方は適宜読み替えてください。
QFixHowmのインストールについては「QFixHowm - vim用howmプラグイン」を、
howmの基本的な使い方については「 howmの基本的な使い方」を参照して下さい。

環境設定

各種オプション設定によって、動作をカスタマイズ可能です。
オプションは3つに分かれています。
  1. 検索部分
    QFixGrepのオプション
  2. Quickfixウィンドウとプレビュー
    拡張Quickfixウィンドウのオプション
  3. QFixHowm部分
    全オプション一覧

目次へ>


キーマップのカスタマイズ

QFixHowmのデフォルトキーマップは g,c の様に3ストロークのコマンドになっています。
QFixHowm_Key で1ストローク目のキーマップ、QFixHowm_KeyB で2ストローク目が指定可能です。

たとえばデフォルトの新規howmファイル作成コマンドは g,c のように2ストローク目が , になっていますが、 QFixHowm_KeyB='.' とすると g.cになります。

"Howmコマンドキーマップ
let QFixHowm_Key = 'g'

"Howmコマンドの2ストローク目キーマップ
let QFixHowm_KeyB = ','
またQFixHowm_KeyBを空白にして、2ストロークコマンドで使用することも出来ます。
以下の例では スペースキーを押してから c を押す事でHowmファイルの新規作成というようになります。
"QFixHowmキーマップ
let QFixHowm_Key = '<Space>'

"Howmコマンドの2ストローク目キーマップ
let QFixHowm_KeyB = ''
<目次へ>



最近 "作成/更新/閲覧" したファイル表示のキーマップ

デフォルトのキーマップは以下のようになっています。

,m
 「howmのMRUリスト表示
 最近 "閲覧/作成/更新" したファイルの表示
,l  「最近 "更新" したエントリを検索
 ファイル自体の更新日時順に表示します。
 ,L  「最近 "作成" したエントリをhowmタイムスタンプで検索
  howmタイムスタンプを検索して作成日時順に表示します。

キーマップは以下のオプションで変更できます。
"最近"更新/閲覧"したファイルの検索(MRUリスト表示)
let QFixHowm_Key_SearchMRU = 'm'
"最近"更新"したファイルの検索
let QFixHowm_Key_SearchRecent = 'l'
"最近"作成" したファイルの検索
let QFixHowm_Key_SearchRecentAlt = 'L'
なお QFixHowm_RecentMode > 0 で使用する場合は、,l と ,L の動作が自動的に入れ替わりますので、QFixHowm_RecentModeを変更しても、特にキーマップ変更する必要は有りません。


コマンドで挿入されるテンプレートのカスタマイズ

,c 等のコマンドでは、以下の環境変数に登録されているコマンドが実行されて、テンプレート(文字列)が挿入されます。
開始位置など好みに応じて変更して下さい。
たとえばQFixHowm_Cmd_Newの最後の a を削除するとノーマルモードの状態で新規ファイルが作成されます。
kk$aを削除するとカーソルは本文(最下行)に位置した状態で作成されます。
",d 現在日付を挿入
let QFixHowm_Key_Cmd_d = "i<C-r>=strftime('[%Y-%m-%d]')<CR>"
",T 現在時刻を挿入
let QFixHowm_Key_Cmd_T = "i<C-r>=strftime('[%Y-%m-%d %H:%M]')<CR>"


"テンプレート

let g:QFixHowm_Cmd_NewTemplate = g:QFixHowm_Title." \<CR>\<C-r>=strftime(\"[%Y-%m-%d %H:%M]\")\<CR>\<CR>"
let g:QFixHowm_Cmd_NewTemplateP = "I".g:QFixHowm_Cmd_NewTemplate."<CR><ESC><Up><Up><Up>$a"

",c 新規ファイル作成
let g:QFixHowm_Cmd_New = "I".g:QFixHowm_Cmd_NewTemplate."\<ESC>\<Up>\<Up>$a"
",C 現在のカーソル行の後ろに新規エントリのタイトルを追加挿入
let g:QFixHowm_Key_Cmd_C = "o".g:QFixHowm_Cmd_NewTemplate."<ESC><Up><Up>$a"

",n 現エントリの次に新規エントリを追加する

let g:QFixHowm_Key_Cmd_n = ":QFixHowmCursor next<CR>".g:QFixHowm_Key_Cmd_C
",N 現バッファの最後に新規エントリを追加する
let g:QFixHowm_Key_Cmd_N = ":QFixHowmCursor bottom<CR>".g:QFixHowm_Key_Cmd_C
",p 現エントリの前に新規エントリを追加する
let g:QFixHowm_Key_Cmd_p = ":QFixHowmCursor prev<CR>".g:QFixHowm_Cmd_NewTemplateP
",P 現バッファの先頭に新規エントリを追加する
let g:QFixHowm_Key_Cmd_P = ":QFixHowmCursor top<CR>".g:QFixHowm_Cmd_NewTemplateP

QFixHowm_Key_Cmd_n QFixHowm_Key_Cmd_pで使用されている QFixHowmCursorはカーソルを移動させます。
パラメータは以下の通りです。

 top  先頭行へ
 prev  現エントリの先頭行へ
 next  現エントリの末尾行へ
 bottom  最下行へ

3g,n のようにカウント指定すると指定したエントリ数後へ移動します。

.vimrc でデフォルトコマンドを変更する場合には、QFixHowm_Titleを明示的に定義してから変更するか、QFixHowm_Titleの部分を "=" に置き換えてやる必要があります。
たとえば新規howmファイル作成時にカーソル位置を本文から始めたい場合は以下を .vimrcに追加します。
"QFixHowm_Titleを明示的に定義
let QFixHowm_Title = "="
",c 新規ファイル作成
let QFixHowm_Cmd_New = "i".QFixHowm_Title." \<CR>\<C-r>=strftime(\"[%Y-%m-%d %H:%M]\")\<CR>\<CR>\<ESC>$a"

好みによりますがタイトルにデフォルトの = を使用するなら、埋め込みで良いかもしれません。
",c 新規ファイル作成
let QFixHowm_Cmd_New = "i= \<CR>\<C-r>=strftime(\"[%Y-%m-%d %H:%M]\")\<CR>\<CR>\<ESC>$a"


関連ファイル名の挿入

,c コマンドが実行された時に開いていたバッファのファイル名が QFixHowm_OpenVimExtRegで指定される拡張子なら、QFixHowm_LastFilename にファイル名がgotoリンク付きで保存されます。
次のように .vimrcに設定すると、新規作成した時に開いていたバッファのファイル名がgotoリンクとして書き込まれます。
",c 新規ファイル作成
let QFixHowm_Cmd_New = "i= \<CR>\<C-r>=strftime(\"[%Y-%m-%d %H:%M]\")\<CR>\<C-r>=g:QFixHowm_LastFilename\<CR>\<CR>\<ESC>kk$a"
デフォルトでは 本家Emacs版準拠で、howmタイムスタンプが付加された状態で新規ファイルが作成されます。
コマンドで挿入されるテンプレートのカスタマイズ」を利用すると、新規ファイルの内容を自由に設定可能です。
なお QFixHowmでは保存時に、エントリ内にhowmスタンプがない場合はhowmタイムスタンプを付加して、タイトルがないものは本文の一行目から自動で設定するようになっています。

これを利用して新規エントリはタイトル記号のみにして、タイトルを明示的に付けたい場合はタイトルから、そうでない場合は<CR>を入力してから本文を書き始めるというようにすると便利かもしれません。

以下のファイルを、QFixHowmと同じディレクトリ(qfixapp/plugin)にコピーすると新規エントリはタイトル記号だけで作成するようになります。
title-keycmd.vim



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

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




<目次へ>


異なる文字エンコーディングのファイルと文字化け

vim/gvimに文字コードの自動判定が設定されていなくても動作するように howmファイルには強制的にhowm_fileencodingを設定しています。
したがってhowmファイルに howm_encoding以外の文字エンコードを使用している場合は必ず文字化けします。
また文字化けの際はリードオンリーになってしまうので、文字エンコーディングを指定しての再読込も効かなくなってしまいます。
このような場合は次の様に設定するとエンコーディングの強制設定が無効になります。
"howmファイル読込の際、howm_fileencodingに強制設定する/しない
let QFixHowm_ForceEncoding = 0

外部grepでは異なる文字エンコーディングのファイルは検索できないので、howm_dir内のファイルの文字エンコードは、必ず howm_fileencodingに統一して、QFixHowm_ForceEncoding=0 は基本的に設定しないで使用してください。
howm_fileencodingを強制しない場合は vimで文字化けするファイルはQFixHowmでも文字化けします。
特に一行だけの思いつきメモを良く作成するような場合、使用している日本語文字種が少ないため文字化けすることがあります。
vimの文字化けについて

どうしても異なる文字エンコードを混在させたい場合は、QFixHowm_ForceEncoding=0 を設定して、検索は常に ,\g (vimgrep)で行えば一応可能です。

<目次へ>



カーソル位置のURIをブラウザや外部プログラムで開く


gotoリンクに以下のようなURLやファイル名が書かれていたら、ブラウザで開く事が出来ます。
>>> http://...
>>> ftp://...
>>> ~/....
>>> C:\Temp\...
>>> D:/Temp/...
*.txt *.howm *.vimの場合はvimで開きます。
vim で開く拡張子は QFixHowm_OpenVimExtReg で指定できます。

gotoリンクでない普通の文章内のURLやファイル名も自動的にリンク化されて、同様に開く事が出来ますが空白を含むパスなどは扱えません。
普通の文章内にある場合は、空白がURIの区切りとして扱われます。

gotoリンクの場合は空白を含むパスをそのまま使用する事が出来ます。

"vimで開く拡張子の正規表現
let QFixHowm_OpenVimExtReg  = '\.txt$\|\.howm$\|\.vim$'


"gotoリンクを開くブラウザの指定

if has('win32')
  "Internet explorer
  let QFixHowm_OpenURIcmd = '!start "C:/Program Files/Internet Explorer/iexplore.exe" %s'
  "firefox
  "let QFixHowm_OpenURIcmd  = '!start "C:/Program Files/Mozilla Firefox/firefox.exe" %s'
elseif has('unix')
  let QFixHowm_OpenURIcmd = "call system('firefox %s &')"
endif

特定の拡張子だけユーザ指定のプログラムで開く事も出来ます。
たとえば pdfファイルを外部プログラムを指定して開きたい場合は、 QFixHowm_Opencmd_pdf のように QFixHowm_Opencmd_ の後に拡張子を付加した環境オプションを設定します。

"拡張子別の起動プログラムをユーザ指定する
"pdfの指定

if
 has('win32')
  "Windowsは Acrobat Reader で開く
  let QFixHowm_Opencmd_pdf = '!start "C:/Program Files/Adobe/Reader 9.0/Reader/AcroRd32.exe" %s'
elseif has('unix')
  "Linux(Ubuntu)は evince で開く
  let QFixHowm_Opencmd_pdf = "call system('evince %s &')"
endif
<目次へ>


howm専用MRUを使用する


MRUリストは最近編集/閲覧した howmファイルをアクセス時間順にリストにしたものです。
,l の「最近 "更新" したファイルの検索」では更新保存したファイルしか対象になりませんが、MRUリストでは単純に閲覧しただけ、バッファを切り替えただけでも対象になるため、 最近 "作成 / 更新 / 閲覧" した全てのファイルが一覧表示されます。
これにより一度検索を利用して閲覧しただけのファイルでも、再び検索で探すような必要が無くなります。
内部grepを使用している場合や、howmファイルをUSBメモリやネットワークドライブに置いていて、検索が遅いときなどにも有効です。

,m ,l ,L のキーマップはカスタマイズ可能ですので、使いやすいように設定してください。
最近 "作成/更新/閲覧" したファイル表示のキーマップ


オプション
"MRUを保存するファイル
let QFixHowm_MruFile    = '~/.howm-mru'
"MRUを保存する最大数
let QFixHowm_MruFileMax = 30

"ジャンプ先の行番号を変更する
let QFixHowm_MRU_SummaryLineMode = 1

"MRUを使用する/しない
let QFixHowm_UseMRU = 1

ジャンプ先の変更

 QFixHowm_MRU_SummaryLineMode = 0  常に編集行をジャンプ先に使用します。
 QFixHowm_MRU_SummaryLineMode = 1
 MRUのジャンプ先が空白やタイムスタンプの場合、空白行やタイムスタンプでない最も近い行に変更します。
 QFixHowm_MRU_SummaryLineMode = 2
 MRUのジャンプ先をタイトル行に変更します。

<目次へ>



アウトラインモード

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

,o
 アウトライン用のコマンド QFixHowmOutlineを呼び出す。
 デフォルトでは zi コマンドで折りたたみがON/OFFされます。

折りたたみを利用して、アウトラインプロセッサ風に使用する事が出来ます。
アウトラインモード




<目次へ>


サブメニュー(サイドバー)

"サブメニューで表示するファイル名
let SubWindow_Title = '~/__submenu__.howm'
"サブメニューの幅指定
let SubWindow_Width = 30
g,i で左サイドバーを出すことが出来ます。


サイドバーには SubWindow_Titleで指定したファイルの内容が表示されます。
サブメニューに検索リンク化されたキーワードを書いておくと、サイドバーから<CR>でキーワード検索が出来ます。
タイトルに[:vim]のようにカテゴリを設定しているなら、:vimをキーワードにしておくと、カテゴリ検索が出来ます。
サブメニューのバッファを直接編集出来ますが、スクラッチバッファになっているので編集後にg,wで保存する必要があります。

<目次へ>


オートリンク上のタグジャンプ

come-fromリンクや Wikiスタイルリンクのキーワード上で、<C-]> を押すと、定義部分へタグジャンプします。
come-fromリンクやWikiスタイルリンク定義に直接移動したいときや、オートリンクの定義を変更、削除したいときなどに使用して下さい。
grepではなく vimのタグジャンプを使用しているので、高速に移動できます。

現時点ではvimのタグジャンプ機能を使用しているので、キーワードが空白を含む場合など、ジャンプできない事があります。
うまくジャンプしない場合はビジュアルモードの選択でキーワードを指定して<C-]>を実行して下さい。
複数候補がある場合はg<C-]>でジャンプ先を指定するなどしてください。
この機能はデフォルトでは無効にされています。

tagsファイルは QFixHowm_TagsDir で指定した場所へ作成されます。
QFixHowm_TagsDir のデフォルト値は howm_dirです。
tagsファイルは、オートリンクの定義が含まれる howmファイルの保存時と ,rk のリビルド時に更新されます。

"オートリンク上のタグジャンプを使用する/しない
let QFixHowm_UseAutoLinkTags = 1


"tagsファイルを作成するディレクトリ
let QFixHowm_TagsDir = howm_dir

<目次へ>


タイトルタグフィルタ

QFixHowm_TitleFileterRegに正規表現を登録しておくと、タイトル検索や予定・TODOを表示した時、対応する正規表現が含まれるエントリタイトルを表示しません。
普段からプライベートな予定・TODOのタイトルには [:private] などのタグを付けておいて、特定の環境でタイトル行や予定・TODOに [:private] がついているものは表示したくない時などに使用します。
"タイトルタグフィルタの正規表現
let QFixHowm_TitleFilterReg = '\[:private\]'
<目次へ>


タイトルを付けるのも面倒な場合

.vimrcに追加することで有効になります。
"タイトルに何も書かれていない場合、エントリ内から適当な文を探して設定する。
"文字数は半角換算で最大 QFixHowm_Replace_Title_len 文字まで使用する。0なら何もしない。
let QFixHowm_Replace_Title_Len = 64

"対象になるのは QFixHowm_Replace_Title_Pattern の正規表現に一致するタイトルパターン。
"デフォルトでは次の正規表現が設定されている。
let QFixHowm_Replace_Title_Pattern = '^'.
escape(g:QFixHowm_Title, g:QFixHowm_EscapeTitle).'\s*\(\[[^\]]*\]\s*\)\=$'

"新規エントリの際、本文から書き始める。
let QFixHowm_Cmd_New = "i".QFixHowm_Title." \<CR>\<C-r>=strftime(\"[%Y-%m-%d %H:%M]\")\<CR>\<CR>\<ESC>$a"
",Cで挿入される新規エントリのコマンド
let QFixHowm_Key_Cmd_C = "o<ESC>".QFixHowm_Cmd_New

<目次へ>


エントリの自動整形

デフォルトでエントリの自動整形が有効になっています。
自動整形は以下の処理を行います。
  • ファイル先頭と末尾の空行を削除します。
    エントリ間の空行も削除するように設定可能ですが、カーソル位置がずれる場合があります。
    エントリファイルが空行のみの場合はファイルが削除されます。
  • ファイル先頭にタイトル行がない場合は、挿入します。
    ただし予定・TODOと空行しかないファイルには、タイトルの挿入を行いません。
  • ファイル先頭行の正規化されていないタイトルは正規化します。
    またその他の行でも行頭に QFixHowm_Titleがある行は全てタイトルとみなして正規化します。
    ファイル先頭行以外のタイトル正規化を無効にしたい場合は QFixHowm_Autoformat_TitleMode = 0 に設定してください。
  • タイムスタンプのないエントリには保存時にタイムスタンプを付加します。
    自動で付加されたくない場合はQFixHowm_SaveTime = -1を設定します。

自動整形のオプション

"エントリを自動整形する
"2に設定すると、一ファイル複数エントリのエントリ間の空白行も削除する
let QFixHowm_Autoformat = 1
"行頭にQFixHowm_Titleがある行は全てタイトルとみなして自動整形する
let QFixHowm_Autoformat_TitleMode = 1
"タイムスタンプを自動で付加しない
let QFixHowm_SaveTime = -1

全ての整形処理を無効にしたい場合は、QFixHowm_Autoformat = 0 に設定してください。

<目次へ>


howmのファイルタイプ指定

howmのファイルタイプは howm-mode.vimとの互換性のため、howm_memo に設定されています。
ファイルタイプは QFixHowm_FileTypeで howm など好みのファイルタイプへ変更可能です。
ただしファイルタイプを howm へ変更する場合は、qfixapp/syntaxの howm_memo.vimを、howm.vimへ変更しないと、QFixHowm独自の色分けは有効になりません。

文書構造とユーザ独自のシンタックスファイル

"howmのファイルタイプ
let QFixHowm_FileType = 'howm_memo'
<目次へ>


QFixHowmの自動生成ファイル

QFixHowmが,W ,X @などで自動生成するファイル名は以下の設定が使用されます。
変更するとファイル名がバッティングする可能性がありますので、変更する場合は %Y %m %d %H % M %S の全てを含むようにして下さい。
"QFixHowmが自動生成するファイル名
let QFixHowm_GenerateFile = '%Y-%m-%d-%H%M%S.howm'
<目次へ>


howmを一日一ファイルで使用する

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

<目次へ>



検索時にカーソル位置の単語を拾う/拾わない

g,e 等の検索を行う場合、自動でカーソル位置の単語を拾います。
不要な場合は<C-u>や<C-w>で削除してやる事が出来ますが、デフォルトでこれをオフにする事も出来ます。
"QFixGrepの検索時にカーソル位置の単語を拾う/拾わない
let MyGrep_DefaultSearchWord = 1
"QFixHowmの検索時にカーソル位置の単語を拾う/拾わない
let QFixHowm_DefaultSearchWord = 1
<目次へ>


howmタイムスタンプのフォーマット

デフォルトは[2009-09-06 00:00] の形式です。
"日付フォーマット
let QFixHowm_DatePattern = '%Y-%m-%d'
[2009/09/06 00:00] の形式にするには以下のように設定します。
let QFixHowm_DatePattern = '%Y/%m/%d'
%Y-%m-%d か %Y/%m/%d のどちらかを指定するようにしてください。

howmタイムスタンプの一括置換

%Y-%m-%d形式 から %Y/%m/%d形式への変換は、適当な一括置換ツールなどで変換して下さい。
一括置換を行うと大抵の場合、ファイルの更新時間も全て更新されますので、必要ならタイムスタンプ変更ツールなどを使用して下さい。
次のようにするとファイルの更新時間を維持する事が出来ます。
  1. ファイルの作成時間を更新時間に変更
  2. howmタイムスタンプを一括置換
  3. ファイルの更新時間を作成時間に変更


vimでの一括置換

  1. 置換後の保存で、オートフォーマットやhowmタイムスタンプの自動更新が行われないように以下を .vimrc(_vimrc)の最後に追加します。
    let QFixHowm_DatePattern = '%Y/%m/%d'
    let QFixHowm_Autoformat = 0
    let QFixHowm_RecentMode = 0
    let QFixHowm_SaveTime = -1
  2. vimを再起動します。
  3. コマンドモードで以下を実行します。
    パスは howm_dir に設定したディレクトリに変更して下さい。
    :cd ~/howm
    :args **/*.howm
    :argdo %s/^\s*\[\(\d\{4}\)-\(\d\{2}\)-\(\d\{2}\)/[\1\/\2\/\3/ge
  4. 置換の結果を確認して、全てのhowmファイルを保存します。
  5. 1.で .vimrcの最後に追加したオプションの QFixHowm_DatePattern以外を削除します。
  6. vimを再起動します。
<目次へ>


次のページ「快適な使用のために」へ移動
前のページ「予定とTODO」へ戻る

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