QFixHowm - 基準ディレクトリと複数の howm_dir

基準ディレクトリを使用してローカルファイルにリンクを張る

howm://を使用して特定ディレクトリ(デフォルトは howm_dir) のローカルファイルにリンクを張ることができます。

howm://を使用すると howm_dirを移動してもローカルファイルへのリンクを維持することが可能です。

また Windowsと Linuxでも howmファイルの変更無しに同じローカルファイルへのリンクが維持されます。

howm_dir が c:/howm と設定されていた場合

howm://2010/01/2010-01-23-012345.howm

c:/howm/2010/01/2010-01-23-012345.howm として扱われます。

howmで参照したいローカルファイルを c:/howm/_files_ 以下にまとめておくと便利かもしれません。

howm://_files_/test.jpg

c:/howm/_files_/test.jpg として扱われます。

こうしておくと howm_dir を d:/data/howmへ移動してもhowmファイルを変更する必要はありません。

同様にWindowsとLinuxで同じ howmデータを使用する事が出来ます。

Linuxで howm_dir が ~/howm と設定されていた場合

howm://2010/01/2010-01-23-012345.howm

~/howm/2010/01/2010-01-23-012345.howm として扱われます。

同様に rel://を使用すると任意のディレクトリにリンクを張れます。

let QFixHowm_RelPath = 'c:/temp'

基準ディレクトリ (QFixHowm_RootDir)

基準ディレクトリ

QFixHowm_RootDirを設定すると、MRUやランダム表示用のキャッシュファイルを QFixHowm_RootDirを基準に保存します。

以下のように設定すると WindowsとLinuxでパスが異なる環境でも QFixHowm_RootDir以下のファイルについて MRUリストを維持することが出来ます。

" MRUの相対パス基準ディレクトリ設定例
" Windows
let QFixHowm_RootDir = 'D:/usr/howm'
" Linux
let QFixHowm_RootDir = '~/howm'

これまで QFixHowm_RootDirを設定していなかった場合 QFixHowm_RootDirを設定すると MRUリストが維持されなくなる事があります。

そのような場合は一度 MRUリストのファイルを削除して下さい。

howm_dirの切替

ディレクトリが以下のようになっているとして /howm 以下のディレクトリを howm_dirとして切り替えて使いたいとします。

D:/usr/howm
  ├─main
  ├─pc
  ├─user-mkd
  ├─vimwiki
  └─work

そのような場合 QFixHowm_RootDirを利用して簡単に howm_dirを切り替えられるようにすると便利です。

" MRUの相対パス基準ディレクトリ
let QFixHowm_RootDir = 'D:/usr/howm'
" howm_dirの切替コマンド
command! -nargs=1 HowmDir let howm_dir = QFixHowm_RootDir.'/'.<q-args>|echo howm_dir

以下を実行すると howm_dirが D:/usr/howm/mainになります。

:HowmDir main

このとき mainディレクトリ以下にないファイルは MRUに表示されません。

また :HowmDir pcで howm_dirを D:/usr/howm/pc に設定すると pcディレクトリ以下のファイルだけが MRUで表示されることになります。

howm_dir以外も変更したい場合は適当な関数を作成するのもいいかもしれません。

nnoremap g,hm :call QFixHowmEnvMain()<CR> 
function! QFixHowmEnvMain()
  " デフォルトのhowmバッファを使用する
  let g:QFixHowm_HowmMode = 1
  let g:howm_dir          = '~/howm/main'
  let g:howm_filename     = '%Y/%m/%Y-%m-%d-%H%M%S.howm' 
  " 設定関数呼び出し
  silent! call QFixHomwSetup()   
  echo g:howm_dir
endfunction

QFixHowmSetupは使用バッファを markdownや VimWikiと切り替えない場合は不要なのですが、おまじないとして最後に実行してください。

markdownとVimWiki

休日定義ファイル

個別のディレクトリに休日定義ファイルを置いておく場合は howm_dirごとに異なる休日設定が使えます。

全howm_dirでおなじ休日定義を使うなら休日定義ファイルは個別のディレクトリでは無く QFixHowm_RootDirに置く事も出来ます。

" 休日定義ファイル指定
let QFixHowm_HolidayFile = QFixHowm_RootDir . '/Sche-Hd-0000-00-00-000000.*'

USBメモリ

また Windowsでは QFixHowm_RootDir を次のように設定すると vimと同じドライブのデータを参照できます。

let QFixHowm_RootDir = matchstr($VIM, '^[A-Za-z]:').'/howm'

vim/gvimを USBメモリなどから起動している場合などは便利です。

howm-chenv.vim

howm_dir切替には howm-chenv.vimというスクリプトもあります。

howm-chenv.vim

howm-chenv.vimを使用すると仕事用とプライベート用など howm環境を簡単に切り替えることが出来て、vimを終了しても前回終了時と同じ設定が使えます。

以下のスクリプトを /qfixappなどランタイムパスの通った場所にコピーして下さい。

howm-chenv.vim (2013/08/01)

以前にhowm-chenv.vimを使用していた方は必ず差し替えて下さい。

.vimrcの設定

" MRUの相対パス基準ディレクトリ
let QFixHowm_RootDir = 'D:/usr/howm'
"howmディレクトリの切替
nnoremap <silent> g,hh :echo howm_dir<CR>
nnoremap <silent> g,ha :call HowmChEnv('',     'time', '=')<CR>
nnoremap <silent> g,hm :call HowmChEnv('main', 'time', '=')<CR>
nnoremap <silent> g,hp :call HowmChEnv('pc',   'time', '= [:pc]')<CR>
nnoremap <silent> g,hw :call HowmChEnv('work', 'day',  '=')<CR>

howmのデータは QFixHowm_RootDir以下に作成されます。

QFixHowm_RootDirが c:/howmなら c:/howm/mainというように、それぞれ異なるディレクトリを使用してデータを格納します。

後述しますがディレクトリ名が -mkdや VimWikiで終わっていると markdownや VimWikiが適用されます。

  • g,hh で現在の環境を表示します。
  • g,hm と g,hp は一エントリ一ファイルで g,hw では一日一ファイルで実行します。
  • g,hp の時はタイトルにカテゴリタグ '= [:pc] ' を常に付加します。
  • g,ha では全てのエントリを検索することが出来ます。

インストール後の初回使用時のみ必ず g,hm など、どれかのコマンドを実行してください。

以降は前回の設定が使用されます。

あんまり細かく分けてしまうと適当にメモを書いて適当に検索する howmの良さが無くなりますが、仕事のメモとプライベートなメモなどを分けておくのは有効かと思います。

キーマップや path、ファイル設定などは「コマンドで挿入されるテンプレートのカスタマイズ」も参考に適当にカスタマイズして下さい。

howm-chenv.vimで markdownとVimWiki

hwom-chenv.vimの使用時に、特定の howm_dirでのみ markdown やVimWiki形式でバッファを扱う事が出来ます。

予定・TODOを色分け表示するなど、詳しいことは以下を参照して下さい。

markdownとVimWiki

markdown

ディレクトリ指定の最後が -mkdで終わっていると markdownを使用します。

"markdownを使用するhowmディレクトリの切替

nnoremap <silent> g,hu :call HowmChEnv('user-mkd', 'time', '#')<CR>

VimWiki

ディレクトリ指定の最後が vimwikiで終わっていると VimWikiを使用します。

" MRUの相対パス基準ディレクトリ
let QFixHowm_RootDir = 'D:/usr/howm'
"vimwikiを使用するhowmディレクトリの切替
nnoremap <silent> g,hv :call HowmChEnv('vimwiki', 'time', '=')<CR>
" VimWikiの設定
set runtimepath+=path/to/vimwiki
let vimwiki_dir     = QFixHowm_RootDir.'/vimwiki'
let vimwiki_htmldir = 'D:/usr/public_html'
let vimwiki_list    = [{'path':vimwiki_dir, 'path_html': vimwiki_htmldir}]