QFixHowm - vim用howmプラグイン
vim/gvim用メモ取りシステムhowm
これは何?
howmはエディタで手軽にメモや予定、TODOを書いて、検索するためのシステムです。
QFixHowmは、vim/gvimにhowmを実装したスクリプトで、拡張Quickfixの機能による追加検索で絞り込み、ソート、結果表示編集などが可能です。
Quickfixウィンドウを使用しているので、柔軟な検索結果表示/非表示が可能です。
またプレビュー&絞り込み検索付きgrepとしても使えます。(→「grepとして使用する」)
基本的なデータ形式や操作はEmacs版(本家)に合わせてありますが、「予定・TODOの繰り返し」など、一部に独自拡張されている部分があります。
howmでは、細かいことを気にせずメモや日記、日報が簡単に作成できます。
メモを取る時いちいちファイル名を気にしなくても良いので非常に楽です。
予定やTODOも管理できて、一行のメモでもどんどん書き込めます。
howmファイル自体はただのテキストファイルなので、他のソフトからのインポートや変換なども自由に行えます。
(スクリーンショット)
中央に表示されているのがプレビュー画面で、現在Quickfixウィンドウで選択されている行がハイライトされています。
Emacs版で作成したデータは、ほぼそのまま使えます。
Emacs版 howm(本家)
http://howm.sourceforge.jp/index-j.html
余談ですが howmは「ひとり / お手軽 / Wiki / もどき」の略なので howM が正しく howN ではありません 。
QFixHowm はhowmに似たなにかですので QFixHown でも間違いではないかもしれません :-P
vim/gvim version 7.0以降対応です。
動作確認は主にWindowsのgvimを使用して行っています。
Linux(Ubuntu)やコンソール版での動作確認も行っていますが、全ての環境での動作を保証するものではありません。
ダウンロード
QFixHowm Ver.3 リリース版
https://github.com/fuenor/qfixhowm/archive/master.zip
休日定義ファイル (1960-2037) (2020/02/16)
Sche-Hd-0000-00-00-000000.utf8
Sche-Hd-0000-00-00-000000.cp932
(2020/12/23)
- 休日定義ファイルの天皇即位、2021オリンピック関係の定義を修正しました。
(2020/02/20)
- 日本語環境で休日定義ファイルが未設定の場合、デフォルトの休日定義ファイルを使用するようにしました。
- 書き込み処理の高速化。
不具合と思われる動作やドキュメントと異なる挙動についてはご連絡ください。
「連絡用フォーム」
インストール
「QFixHowm - インストール」にまとめました。
他のhowmを使用していた方はインストール後に「他のhowmを使用していた方へ」を参照してください。
QFixHowmの使い方
「クイックスタート」
にまとめました。
プレビュー付きgrepとして使用する
「grepとして使用する」にまとめました。
QFixHowm は QFixGrepを利用しているためにプレビュー付のgrepとして扱う事も可能です。
環境設定
環境設定
各種オプション設定によって、動作をカスタマイズ可能です。
オプションは3つに分かれています。
QFixHowmはQFixGrepを使用しているので設定がQFixGrepと共通になります。
「オプション」
快適に使用するための設定は以下のページにまとめました。
困った時は
QFixGrep、QFixHowmの動作がおかしいと思われる場合はお手数ですが、「連絡先」までご連絡ください。
異なる文字エンコーディングのファイルと文字化け
vim/gvimに文字コードの自動判定が設定されていなくても動作するように howmファイルには強制的にhowm_fileencodingを設定しています。
howm_fileencoding と異なるファイルエンコーディングのhowmファイルを読み込んだ場合は QFixHowm_ForceEncodingに応じて以下の処理が行われます。
デフォルトは 1 です。
"howmファイル読込の際、howm_fileencodingに強制設定する
let QFixHowm_ForceEncoding = 1
外部grepでは異なる文字エンコーディングのファイルは検索できないので、howm_dir内のファイルの文字エンコードは、howm_fileencodingに統一して、QFixHowm_ForceEncoding=0 は基本的に設定しないで使用してください。
howm_fileencodingを強制しない場合は vimで文字化けするファイルはQFixHowmでも文字化けします。
特に一行だけの思いつきメモを良く作成するような場合、使用している日本語文字種が少ないため文字化けすることがあります。
どうしても異なる文字エンコーディングを混在させたい場合は、QFixHowm_ForceEncoding=0 を設定して、検索は常に ,\g (vimgrep)で行えば一応可能です。
ファイルエンコーディングに応じて複数の howm_dir を使用する事も可能ですが、いずれにしても文字エンコーディングの混在はおすすめしません。
パスの設定
基本的には問題ないはずですが、正規表現に使用する文字や空白を含むパスなどを使用している場合は、動作に問題が出る場合があります。
QFixHowmに限った事ではないのですが、Windowsの場合は、shellslash を設定してやるとパスに関わる問題が解消される事があります。
set shellslash
次のページ「howmの基本的な使い方」へ移動
他のhowmを使用していた方へ
操作については、以下のリンクを参照してください。
デフォルトでは、なるべくEmacs版と同じ動作を行うようにしていますが、howmの移植自体を目的としているわけではありません。
個人的にhowmはWikiのようにデータを整理するような使い方より、とにかくメモを取ったりアイディアを書き留めて、ある程度までまとめる下書き作成用だと考えてQFixHowmは作成されています。
Emacs版のように一ファイル一エントリのメモだけではなく、Changelog的な一ファイル複数エントリの併用も想定していて、一ファイル複数エントリでもエントリ単位で更新時間を扱えるように、また予定・TODOも繰り返し可能に拡張されています。
QFixHowmでは膨大なメモが存在していたとしても、実際に必要とするメモの9割は最近使用したメモのリストに含まれるという観点から grepではなくMRUやクイックメモ(特定ファイルへのメモ)を重視しています。
また外部grepを使用出来る場合では、さほど気にする必要はありませんが、vimgrep(内部grep)は非常に遅いため、可能な限りgrepを使用しなくてもすむように考慮しています。
QFixHowmはhowmのデータ形式を流用可能な、以下の様なメモ取りシステムを目標として開発されています。
- ファイル数が2000や3000あっても、最近更新したファイルの検索 / 閲覧をストレス無く扱える事
- 一ファイル複数エントリでも、個別に更新時間を管理できる事
- 一ファイル複数エントリで、更新時間順にファイル内のエントリーをソート可能な事
- 繰り返す予定・TODOを管理できる事
このために実装された拡張機能として以下のものがあります。
「クイックメモ」
コマンド的には ,uの「クイックメモ」や,m の「howm専用MRUを使用する」、 ,j 「ペアリンク」のをメインに使用する事を想定しています。
QFixHowmの特徴的な部分に関しては以下が参考になるかと思います。
- プレビュー付きgrepとして使用できます。
- 独自拡張
- 「予定とTODO」
- QFixHowm独自の高速化
次のページ「howmの基本的な使い方」へ移動