vim

61 howm-mode.vim (2-32) migemo() に日本語を渡さないように

vim

migemo() はどうも日本語を入力するとおかしな出力をすることがあるみたい。下記のような文字で出力が狂う。 migemo('鬼神') 鬼がいけないみたい。文字コードの関係かな。どこに原因があるのか、詳しくはわからないが、少なくとも migemo() に日本語を入力す…

60 howm-mode.vim (2-31) action-lock に SyntaxPreview を追加

vim

http://d.hatena.ne.jp/kuhukuhun/20080112/1200143567いっしょの人が書いてた SyntaxPreview が予想以上に綺麗だったので、例のごとく howm-mode.vim の action-lock として導入してみた。導入にあわせて若干の改変を加えた。 vimrc に下記のコードを追加で…

59 howm-mode.vim (2-30) WebImport() のパーセントエンコードの扱いを修正

vim

いつものように howm-mode.vim 。s:ActionLockWebImport() で Wikipedia の日本語記事が取り込めないことに気付いた。原因はすぐに分かった。% のエスケープだった。 なにか実行するときはエスケープをしよう :h cmdline-special :h cmdline :h :_% :h :_# :…

58 howm-mode.vim (2-29) コマンド修飾子 :hide を使ってみる

vim

http://d.hatena.ne.jp/eclipse-a/20080227/1204093292うすうす感づいてはいた。気づかないふりをしていた。でも、それが明らかになった。 54 で書いた reltime() は :vimgrep の低速っぷりをそれはもうはっきりと証明してくれた。通常の grep に比べ、自分…

57 netrw.vim

vim

sync-isbn.vim を作ってる過程で、netrw.vim なんてのを見つけた。名前の通りネットワーク上のファイルの読み書き用のコマンド郡。ざっと見た感じ、外部のプログラムを使ってるぽいので、共通インタフェースってところかな。くわしくはヘルプを参照。 :h net…

56 calendar.vim (3-2) howm-mode.vim との連携

vim

45 3-1 で書いてから、放置しっぱなしだった calendar.vim について書く。目標は日付上で ENTER でその日付前後の予定を表示すること。49 2-26 の修正を利用する。ENTERで独自の動作をさせるためには g:calendar_action に関数を指定してやればいいらしいが…

55 sync.vim (4-3) sync-isbn.vim の精度向上と文字コードとマッチングと

vim

http://d.hatena.ne.jp/eclipse-a/20080221/1203578419以前書いた sync-isbn.vim を更新した。 きっかけ sync-isbn.vim を使って、『狐罠』の情報を取得しようとしたら、なにやら表示がおかしかった。なぜか「ISBN:〜」とか取得してた。それはもうがっかり…

54 reltime(), reltimestr()

vim

たまには、特定のスクリプトから離れたことを書いてみる。今回は Vim7 で追加された関数 reltime(), reltimestr() に注目してみる。 結論 :h reltime() :h profile 使える条件 v:version >= 700 && has('reltime') どういう関数か let start = reltime() " .…

53 howm-mode.vim (2-28) パッチの更新

vim

あんまりぐだぐだコードを書いてもしかたないので、メモだけで。大きな変更としては ,m に割り当てられている migemo 検索で一文字だけのときははじくようにしたことと、:vimgrep で /g を使わないようにしたこと。友人が狙えバージョンを使ってmigemo検索し…

52 sync.vim (4-2) sync-isbn.vim を作ってみた

vim

sync.vim を使って ISBN から本の情報を取得するスクリプト「sync-isbn.vim」を書いてみた。見てのとおり一日一冊(を目指して)本を読んで感想を書いてるんだけど、はてなの isbn 記法に :detail をつけたやつがうらやましかった。howm-mode.vim で使いたくな…

51 sync.vim (4-1) sync.vim を使ってみる

vim

http://d.hatena.ne.jp/gnarl/20080205/1202162855sync.vim を試してみた。43 howm-mode.vim (2-21) action-lock の強化とあわせて使うことで vimrc の変更だけでウマー?ためしに hatena.vim を使う場合を書くと、以下のような感じ。 function! HowmActionl…

50 howm-mode.vim (2-27) mattn さんのパッチの取り込みと s:OpenMemo() の修正

vim

http://mattn.kaoriya.net/software/vim/20080218172019.htmmattn さんが書かれていた s:OpenMemo() 内の matchend の変更を吸収。ついでなので OpenMemo に手を入れてみた。 let s:errmsg_cantmkdir = "cannot create directory '%dir%'" " filepath を how…

49 howm-mode.vim (2-26) :HowmSchedule の追加

vim

以前書いた calendar.vim との連携の話。さっさと実装したいんだけど、howm_vim には指定した日時を表示する機能がない。howm_vim 側に変更が必要なわけ。というわけで、ちょいちょいとユーザ定義コマンドを追加する。目標としては、予定一覧(,y)で指定した…

48 howm-mode.vim (2-25) パッチの公開とそのあてかた

vim

以前からぐずぐず言ってたパッチを公開。ついでに Windows 環境でのパッチのあてかたを書いた。 まあ念のため 以下の作業や、それが与えた影響については、すべて自己責任でおねがいします howm_vim の作者さんに一日一回くらい感謝してください 妙な動作を…

47 howm-mode.vim (2-24) howm_instantpreview によって閉じる動作が変わるのを修正

vim

パッチを友人にテストしてもらって気づいたことの一つ。 howm_instantpreview の値によっては、検索ウィンドウとプレビューウィンドウの間にメモウィンドウがあるときに、新たに検索ウィンドウを開く(日付の上でENTERなど)と、メモウィンドウが閉じられるバ…

46 howm-mode.vim (2-23) GrepSearch で空白を含むパスをうまく扱えないのを修正

vim

36 http://d.hatena.ne.jp/eclipse-a/20080206/1202262122 44 http://d.hatena.ne.jp/eclipse-a/20080212/1202817998で書いてきた GrepSearch にさらに修正を加える。例の patch を友人にあててもらったところ、うまく動作しなかった。原因は g:howm_dir の …

45 calendar.vim (3-1) まずは使ってみる

vim

きっかけは http://gtbleds.seesaa.net/article/4622139.htmlhowm の使い方について検索していたら、カレンダーを表示しているサイトを見つけた。リンク先が切れていたので探してみたところ、calendar.vim というものだとわかった。これも対象に加えようと思…

44 howm-mode.vim (2-22) GrepSearch() の bIgnore の解釈ミスを修正

vim

http://d.hatena.ne.jp/eclipse-a/20080206/1202262122上記 url で示されている 36 で GrepSearch() と VimGrepSearch() を統合したんだけど、その際に大文字・小文字の区別をつけるつけないの部分にバグがあったので修正。 if bIgnore | let searchWord = '…

43 howm-mode.vim (2-21) action-lock の強化

vim

http://howm.sourceforge.jp/cgi-bin/hiki/hiki.cgi?UsageActionLock の action-lock 追加の例を見ていいなと思ったので、これができるようにしてみた。目標としては、vimrc にリストを書くと action-lock に追加されること。 plugin/howm-mode.vim まずは p…

42 howm-mode.vim (2-20) s:ShowSchedule() のなぞのエラーを修正

vim

Vim を起動した直後に ,y などで検索一覧 ( s:ShowSchedule() ) を実行する。その後プレビューを表示させてから、:q 。これでエラーが出る。自分の環境だけかもしれないけど、不快なので修正する。エラーは以下。E315: ml_get: 無効なlnumです: 93 E315: ml_…

41 howm-mode.vim (2-19) 検索結果の出力フォーマットを変更、の修正

vim

38 howm-mode.vim (2-16) 検索結果の出力フォーマットを変更で、ShowDirectory() ( ,a で使われる関数 ) の際に %filename% が表示されず困ることがわかった。なので、それにとりあえず対処。 " grep によって全文検索した結果を整形する. " TODO: 第一引数…

40 howm-mode.vim (2-18) TODO処理。スマートに。

vim

ActionLock についてちょっと調べようと思って見ていたら「もっとスマートに」があったので、自分なりにスマートにしてみた。まずは before 。 function! s:ActionLockCheckOff(str, head) let mark = substitute(a:str, '{\(.*\)}', '\1', '') " TODO:もっ…

39 howm-mode.vim (2-17) プレビューの動作を変更

vim

pだけの動作でいいのに、どういうわけか数秒放置するとプレビューしてくれる。ウゼエ。そんなあなたのための修正。まず、グローバル変数を追加する。 if !exists('g:howm_autopreview') let g:howm_autopreview = 1 endif 次に、autocommands を先のグローバ…

38 howm-mode.vim (2-16) 検索結果の出力フォーマットを変更

vim

検索結果のファイル名があまりに無意味なので、消してみる。出力のフォーマットは、FormatSearchResult() で決定されている。変数 lineFormat がそれだ。今回は、こいつをグローバルにしてやる。 function! s:FormatSearchResult() " ... let lineFormat = g…

37 howm-mode.vim (2-15) VimGrepSearch の削除

vim

以前 VimGrepSearch() 作成時に修正した GrepSearch() 呼び出し部分を再び修正。以前の形に近いものに戻った。これでVimGrepSearch() への呼び出しがなくなったので、VimGrepSearch() を削除する。 " TODO: 引数を考え直した方がいいかも " " searchWordType…

36 howm-mode.vim (2-14) GrepSearch と VimGrepSearch の統合

vim

howm-mode.vim の s:GrepSearch() の第2引数の意味を変更することで VimGrepSearch と統合した。Vim7 以降なら Vim の正規表現が使用できるようになった。 " grepを使用してメモファイルを全文検索する. " " 固定文字列・正規表現 ( Vim ) の場合は " :vimg…

35 howm-mode.vim (2-13) VimGrepSearch の修正

vim

http://d.hatena.ne.jp/eclipse-a/20080115/1200375043 で書いた s:VimGrepSearch() にあった問題点を修正。 :vimgrep の使用条件の確認を改善 g:howm_dir の ~ の展開などができていなかった s:GrepSearch() と同様のメッセージ出力(howm Searching...)がで…

34 howm-mode.vim (2-12) HighlightSearchWord の修正

vim

http://d.hatena.ne.jp/eclipse-a/20080118/1200634971 で書いていた s:HighlightSearchWord() にミスがあったので修正。ミスの内容は searchWordType == 2 のときに pat にあやまって、searchWordType を代入していた " b:searchWord にしたがって、ハイラ…

33 howm-mode.vim (2-11) 検索結果から新しい窓を開く2

vim

http://d.hatena.ne.jp/eclipse-a/20080129/1201584967 の続き。前回「検索結果から新しい窓を開く」を書いたところ、新しい窓で開くときにプレビューを消したいという意見があったので、それを踏まえて修正を加えた。s:OpenSearchLine() と、呼び出し側の二…

32 howm-mode.vim (2-10) 検索結果から新しい窓を開く

vim

検索結果やスケジュール一覧などから、 で検索結果が表示される。ただ、たまに別窓で開いてほしいことがある。そこで plugin/howm-mode.vim を以下のように修正。 function! s:OpenSearchWindow(searchWord, ...) " ... nnoremap <silent> <buffer> <CR> :call <SID>OpenSearchLine()<CR> </cr></sid></cr></buffer></silent>…