Last Change: 04-Jun-2006.
howm-mode.vim
お知らせ
- 長いことほったらかしにしてすいませんでした.これからぼちぼち更新再開していこうと思います.
- ソフトバンク社の UNIX USERに howm-mode.vim の紹介記事を掲載していただけることになりました.
よかったら読んでみてください.m(_ _)m
- 長いこと放置して申し訳ありません.
修士論文を書くのに忙しくて 2004 年 2 月中旬くらいまで更新できそうにありません.更新する気はあるので気長に待っていてください.
なんだかフェードアウトするサイトでよく見かけるフレーズですが…フェードアウトはしません!多分,しません.しないんじゃないかな.ま,ちょっと覚悟はしておけ(冗談です).
更新履歴
- 04-Jun-2006.
- スクリプトファイルをfileencoding=euc-jp fileformat=unixに統一(howmスレの58,115さんありがとうございます)
- 16-Aug-2003.
- 過去の更新履歴
今やってることリスト
- g:howm_dir に空白が含まれていると,色々と困るバグを修正する(まっつんさんから報告).
(ずいぶん前から報告やパッチをいただいてるのに対応がのびのびになっててすいません.あちこち手を入れてるのでもう少しお待ち下さい.)
- メモ一覧表示を<S-c>辺りにマップする(まっつんさんから要望,全文検索の関数をグローバルにして,各自 .vimrc で定義してもらう?).
これから先やるつもりがあることリスト
- iconv の文字コード判定を使うようにする.
- 検索窓からメモを開いたとき,検索窓を閉じないようにするオプション.
- メニュー画面の実装.
- ちゃんとしたマニュアルを書く.
- grep.vim で Windows のショートカットがうまく処理できないのを修正する.
- {URL} のアクションロックで,「URL を wget か何かでそのまま保存して,そのファイルへの goto リンクを張る」という処理も選べるようにする.
- ウィンドウ操作がいい加減なのを修正.
- 連結表示重すぎだし不十分なのでどうにかする.
- g:howm_opencmd_* が定義されてるファイルはプレビューしない.(もしくは任意のコマンドでプレビュー)
今の状態だとあまり使いやすくないですね…何か良い案があったら教えてください.
cygwin のシェルから vim を立ち上げると検索できなかったりするのを修正.
ただ単に自分が cygwin と vim に疎かっただけです.&shell が cygwin パス(/usr/bin/zsh みたいな)で渡されてたのが原因なので,.vimrc あたりで &shell を set してやれば解決します.
上のリストは大体優先順位順です.(でも簡単にできることからやったりするかも)
もしもバグや要望などありましたらclaymoremine@anet.ne.jpまでメールでお知らせいただければ,いずれ対応するかもしれません.
howm って何さ?
hira さんによって Emacs Lisp で実装されたメモ取り用の環境です.
あえて分類などはせずに断片的なメモを取って,後で探す時には全文検索で探すという思想で作られています.
メモの形式は基本的に plain-text なのですが,メモ間リンクや予定・Todo 抽出などの便利な機能が盛り込まれています.
詳しくは hira さんのサイトで.
howm: Hitoride Otegaru Wiki Modoki
howm-mode.vim って何さ?
同じ研究室のヤツ(Emacs ユーザ)が howm を使ってるのを見てうらやましくなり,howm を vim スクリプトで実装しちゃいました.

スクリーンショット
本家 howm(Emacs 版)との違い
「まだまだやな」なところ
- メニュー画面がない.
- Todo のソート具合が本家と微妙に違う.
- ウィンドウ操作など細かいところが微妙に快適じゃない.
- 連結表示が不完全.
- come-from リンクが使えない.
- まだ他にもあるかも...
「まぁええがな」なところ
検索結果からファイルを開くときのコマンドを,ファイルの拡張子に応じて変えられる.
本家でも実装されました.
ダウンロード・インストール
必要なもの
- iconv 対応の vim
- GNU grep(Windows の場合は cygwin 版の GNU grep)
22-Oct-2003.
無くても大丈夫になりました.でも無いと検索に時間がかかります.
- Chalice(香り屋 by KoRoN さん)(無くても動きますが,URL を開けません.)
下記の環境で動作確認しています.
Debian GNU/Linux (sarge) + gvim 6.1.320 + GNU grep 2.5.1 + Chalice 1.8.045今は Linux 環境が手元にないので Windows でしかテストしてません。
- MS Windows 2000 Professional + 香り屋版 gvim 6.3.12 + cygwin 版 GNU grep 2.5 + Chalice 1.8.060
まずは上記の howm_vim.tar.bz2 をダウンロードしてください.
例えば ~/ にインストールする場合は以下のような感じ.他のところにインストールしたい場合はパスを適当に読み替えてください.
% cd ~/
% tar jxvf howm_vim.tar.bz2
上記のコマンドを実行した後に .vimrc に下記の 1 行を付け加えます.
set runtimepath+=~/howm_vim
あとは,~/howm というディレクトリを作ったり,g:howm_grepprg で grep のパスを指定したりすれば使えると思います.
設定
以下のグローバル変数の値を変えることで設定が変えられます.
- g:howm_dir
メモファイルをためるディレクトリ(初期値:"~/howm/")
- g:howm_filename
メモファイル名の形式.strftime() の記号が使えます."/" が含まれてると勝手にディレクトリ作ります.(初期値:"%Y/%m/%d/%Y-%m-%d-%H%M%D.howm")
- g:howm_mapleader
howm 関係のキーマップリーダを設定できます.(初期値:',')
- g:howm_fileencoding
メモを書くときの fileencoding(初期値:&enc)
- g:howm_fileformat
メモを書くときの fileformat(初期値:&ff)
- g:howm_instantpreview
検索窓からプレビューを見るタイミングを決める.
非 0 のときは本家と同様カーソルが動いたらすぐにプレビュー.
0 の時は p を押したらプレビュー(操作せずにしばらく放置したときもプレビュー).
(初期値:0)
- g:howm_grepprg
GNU grep のファイルパス."" に定義されてると,GNU grep 使わずになんとかします(遅いです).(初期値:'grep' Windows では '')
- g:howm_findprg
GNU find のファイルパス."" に定義されてると,GNU find を使わずになんとかします.(初期値:'find' Windows では '')
- g:howm_migemoprg
migemo のファイルパス(設定次第で ruby migemo と cmigemo どちらでも OK).(初期値:'migemo')
- g:howm_migemoopt
migemo 実行時のオプション.ruby migemo なら '-t egrep -d 辞書ファイルパス' cmigemo なら '-q -d 辞書ファイルパス' と指定する.(初期値:-t egrep -d /usr/share/migemo/migemo-dict')
- g:howm_hidefile_regexp
このパターンにマッチしたファイルは検索結果に表示しない.(初期値:'\(^\|/\)\.\|[~#]$\|\.bak$\|/CVS/')
- g:howm_date_pattern
メモの中で使う日付の形式.(初期値:"%Y-%m-%d")
- g:howm_date_yearpos, g:howm_date_monthpos, g:howm_daypos
g:howm_date_pattern の中での年・月・日の出現順序(いずれ廃止して,g:howm_date_pattern だけでうまくいくようにします).(初期値:year=1, month=2, day=3)
- g:howm_title_pattern
メモタイトルを示すパターン.(初期値:'=')
- g:howm_glink_pattern
goto リンクを示すパターン.(初期値:">>>")
- g:howm_clink_pattern
come-from リンクを示すパターン.(初期値:"<<<")
- g:howm_removeEmpty
非 0 の時はメモファイルが空になったら削除する.(初期値:0)
他にも g:howm_opencmd_{拡張子} という変数を定義しておくと,検索窓からファイルを開くときに,拡張子に応じたコマンドを使えるようになります.
例えば pdf ファイルを AcrobatReader で開きたい場合には .vimrc あたりに下記のように書いておきます.
if has('unix')
let g:howm_opencmd_pdf = "call system('/usr/bin/acroread %s &')" " unix 系の場合.
elsif has('win32')
let g:howm_opencmd_pdf="call system('\"C:/Program\ Files/Adobe/Acrobat\ 5.0/Reader/AcroRd32.exe\" %s')" " windows の場合.
endif
go to リンクで論文とかが貼れるようになってなかなか便利です.
22-Oct-2003.
g:howm_preview_{拡張子} を 0 に定義しておくと,その拡張子のファイルは検索画面でプレビューしなくなります.
新機能
g:howm_html2txtcmd という変数を定義すると,Web ページを引用するのに(多分)便利な action-lock を使えるようになります.
例えば let g:howm_html2txtcmd = "/usr/bin/w3m-ja -dump -cols 78 %s" のように設定しておいて,メモの中に {http://sworddancer.funkyboy.jp/howm_vim/} と書いてから { か } の上でリターンキーをたたくと,別ウィンドウで {} 内のページを整形した結果が表示されます.その整形された結果の中で引用したい部分をビジュアルモードで選択してからリターンキーをたたくとメモの中に選択した箇所が挿入されます.
このとき,let g:howm_quotemark="> " のように g:howm_quotemark を定義しておくと,引用した箇所に引用符がつきます.
この機能,バグが多いと思うので気を付けてご使用ください.
いいわけ
自分,これが vim スクリプト初挑戦なもので,熟練者から見るとかなりしょぼいスクリプトなんじゃないかと思います.
このスクリプトは無保証です.このスクリプトを使ったことでどのような不利益が生じたとしても,当方はいっさい関知いたしません.
もし親切にも「ここの書き方を変えればましになる」とかアドバイスをしていただける場合には,claymoremine@anet.ne.jpまでメールでお願いいたします.