タグ

ブックマーク / eclipse-a.hatenadiary.org (45)

  • 62 howm-mode.vim (2-33) グローバル変数 howm_ignore_done の追加 - くふんを狙え

    予定やTODOで表示される完了済みのものの表示非表示を切り替えるグローバル変数 howm_ignore_done を追加した。 silent! nmap <silent> <unique> <Leader>,y \ :let g:howm_ignore_done=1<CR><Plug>HOWM_ShowSchedule silent! nmap <silent> <unique> <Leader>,Y \ :let g:howm_ignore_done=0<CR><Plug>HOWM_ShowSchedule こんな風に vimrc に設定して、y なら未完了のもののみ、Y ならすべてを表示するようにした。なかなか便利。

    62 howm-mode.vim (2-33) グローバル変数 howm_ignore_done の追加 - くふんを狙え
    sankaseki
    sankaseki 2008/03/15
    62 howm-mode.vim (2-33) グローバル変数 howm_ignore_done の追加 - くふんを狙え
  • 60 howm-mode.vim (2-31) action-lock に SyntaxPreview を追加 - くふんを狙え

    http://d.hatena.ne.jp/kuhukuhun/20080112/1200143567 いっしょの人が書いてた SyntaxPreview が予想以上に綺麗だったので、例のごとく howm-mode.vim の action-lock として導入してみた。導入にあわせて若干の改変を加えた。 vimrc に下記のコードを追加で動作します。 let g:sp_syntaxdir = $VIMRUNTIME . '/syntax/' let g:sp_start_pattern = '^>|\(\w*\)|\s*$' let g:sp_end_pattern = '^||<\s*$' function! HowmActionlockSyntaxPreview(str, head) if a:str =~ g:sp_start_pattern let lnum_s = line('

    60 howm-mode.vim (2-31) action-lock に SyntaxPreview を追加 - くふんを狙え
    sankaseki
    sankaseki 2008/03/09
    60 howm-mode.vim (2-31) action-lock に SyntaxPreview を追加 - くふんを狙え
  • 59 howm-mode.vim (2-30) WebImport() のパーセントエンコードの扱いを修正 - くふんを狙え

    いつものように howm-mode.vim 。s:ActionLockWebImport() で Wikipedia の日語記事が取り込めないことに気付いた。原因はすぐに分かった。% のエスケープだった。 なにか実行するときはエスケープをしよう :h cmdline-special :h cmdline :h :_% :h :_# :h :_## Exコマンド上で % や # などの文字はファイル名に置換される。それが考慮されていないため、s:ActionLockWebImport() は、URL に % や # を含む場合に正しく動作しない。来は なども回避すべきだろうけど、URL に < や > は、来含まれていないはずなので、今回はスルー。今回、問題になった実行部分を以下のように修正 silent! exe "0r!" . escape(cmd, '%#') ついでに subs

    59 howm-mode.vim (2-30) WebImport() のパーセントエンコードの扱いを修正 - くふんを狙え
    sankaseki
    sankaseki 2008/03/09
    59 howm-mode.vim (2-30) WebImport() のパーセントエンコードの扱いを修正 - くふんを狙え
  • 58 howm-mode.vim (2-29) コマンド修飾子 :hide を使ってみる - くふんを狙え

    http://d.hatena.ne.jp/eclipse-a/20080227/1204093292 うすうす感づいてはいた。気づかないふりをしていた。でも、それが明らかになった。 54 で書いた reltime() は :vimgrep の低速っぷりをそれはもうはっきりと証明してくれた。通常の grep に比べ、自分の環境で1.5〜2.5倍も差があれば、それはもうがっかりというよりは、Vim7の機能をフル活用して howm-mode.vim を使いやすくしてやんよ!という気持ちでいっぱいだったおれは、「もう死ねよ」と言い放たれて、ただ呆然とするばかりの熟れすぎたバナナになってしまい、「とりあえず、落ち着こうよ」という友人の一言を引き金にして、練炭自殺でもはじめかねない、そんな気持ちになってしまったわけだ。 :hide←結論。 で、今日の結論。一回目は遅くたっていいじゃない。メモリいす

    58 howm-mode.vim (2-29) コマンド修飾子 :hide を使ってみる - くふんを狙え
    sankaseki
    sankaseki 2008/03/09
    58 howm-mode.vim (2-29) コマンド修飾子 :hide を使ってみる - くふんを狙え
  • 61 howm-mode.vim (2-32) migemo() に日本語を渡さないように - くふんを狙え

    migemo() はどうも日語を入力するとおかしな出力をすることがあるみたい。下記のような文字で出力が狂う。 migemo('鬼神') 鬼がいけないみたい。文字コードの関係かな。どこに原因があるのか、詳しくはわからないが、少なくとも migemo() に日語を入力すること自体が不自然なので、はじくことにした。変更点は以下のような感じ。 let s:errmsg_migemo = "migemo検索はASCIIの印字可能文字を2文字以上入力してください" " ... function! s:FullTextSearchInput(searchType) " ... " 2文字以上 && ASCII の印字可能文字 ( 0x20-0x7e ) のみで構成される " cpoptions に l があると /\[] 内で \ が使えない try let save_cpo = &cpoption

    61 howm-mode.vim (2-32) migemo() に日本語を渡さないように - くふんを狙え
    sankaseki
    sankaseki 2008/03/09
    61 howm-mode.vim (2-32) migemo() に日本語を渡さないように - くふんを狙え
  • 57 netrw.vim - くふんを狙え

    sync-isbn.vim を作ってる過程で、netrw.vim なんてのを見つけた。名前の通りネットワーク上のファイルの読み書き用のコマンド郡。ざっと見た感じ、外部のプログラムを使ってるぽいので、共通インタフェースってところかな。くわしくはヘルプを参照。 :h netrw sync-isbn.vimcurl を使っている。Chalice で使われているからってのが大きな理由。試しに netrw を使ってみた。こまごまとした機能がついてはいるんだけど、いちいちプロンプトが出て、え?なにがしたいのってなった。gVim を使っているからかもしれないし、Windows 環境だからかもしれないけど、なんつーか使えねぇと思った。指定した変数に文字列でネットワーク上のファイルを(プロンプトを出さずに)がっつり読み込んでくれるだけで十分なんですけど、それはできないみたい。

    57 netrw.vim - くふんを狙え
    sankaseki
    sankaseki 2008/03/09
    57 netrw.vim - くふんを狙え
  • 56 calendar.vim (3-2) howm-mode.vim との連携 - くふんを狙え

    45 3-1 で書いてから、放置しっぱなしだった calendar.vim について書く。 目標は日付上で ENTER でその日付前後の予定を表示すること。49 2-26 の修正を利用する。 ENTERで独自の動作をさせるためには g:calendar_action に関数を指定してやればいいらしいが、よくわからない。とりあえず、テストをしてみる。 let g:calendar_action = 'CalendarActionHowm' function! CalendarActionHowm(day, month, year, week, dir) let query = a:year . '-' . a:month . '-' . a:day echo query endfunction 日付のフォーマットが気になる感じ。そこを修正して再テスト let g:calendar_actio

    56 calendar.vim (3-2) howm-mode.vim との連携 - くふんを狙え
    sankaseki
    sankaseki 2008/03/08
    56 calendar.vim (3-2) howm-mode.vim との連携 - くふんを狙え
  • 53 howm-mode.vim (2-28) パッチの更新 - くふんを狙え

    あんまりぐだぐだコードを書いてもしかたないので、メモだけで。大きな変更としては ,m に割り当てられている migemo 検索で一文字だけのときははじくようにしたことと、:vimgrep で /g を使わないようにしたこと。 友人が狙えバージョンを使ってmigemo検索したところ、:vimgrep が遅いことを差し引いても遅かったので、すこしでもマシになるよう修正。migemo検索で一文字はさすがにありえないので、入力時にはじくことにした。 g がなくなったので、一行で何回もマッチすることはなくなった。件数が増えると異常に遅くなるのは、当にまずい。対処療法で、効果の小さい対応なので、もっと根的な解決策を考えたい。 * s:FullTextSearch() * 第二引数をチェックするよう修正 * s:HighlightSearchWord() * TODO: エラーメッセージを作成 *

    53 howm-mode.vim (2-28) パッチの更新 - くふんを狙え
    sankaseki
    sankaseki 2008/02/25
    53 howm-mode.vim (2-28) パッチの更新 - くふんを狙え
  • 51 sync.vim (4-1) sync.vim を使ってみる - くふんを狙え

    http://d.hatena.ne.jp/gnarl/20080205/1202162855 sync.vim を試してみた。43 howm-mode.vim (2-21) action-lock の強化とあわせて使うことで vimrc の変更だけでウマー? ためしに hatena.vim を使う場合を書くと、以下のような感じ。 function! HowmActionlockSyncHatena(str, head) let id = 'eclipse-a' let s = '{sync:hatena id=' . id . ' date=' . strftime('%Y.%m.%d') . '}' call setline(line('.'), s) call append(line('.'), '{/sync}') endfunction function! HowmActionl

    51 sync.vim (4-1) sync.vim を使ってみる - くふんを狙え
    sankaseki
    sankaseki 2008/02/23
    51 sync.vim (4-1) sync.vim を使ってみる - くふんを狙え
  • 50 howm-mode.vim (2-27) mattn さんのパッチの取り込みと s:OpenMemo() の修正 - くふんを狙え

    http://mattn.kaoriya.net/software/vim/20080218172019.htm mattn さんが書かれていた s:OpenMemo() 内の matchend の変更を吸収。ついでなので OpenMemo に手を入れてみた。 let s:errmsg_cantmkdir = "cannot create directory '%dir%'" " filepath を howm のメモファイルとして開く " linenum == 0 の時には新しいメモのテンプレートを追加した状態で開く " linenum != 0 の時にはその行にキャレットを置いた状態で開く function! s:OpenMemo(filepath, linenum) let editing = s:HowmExpand("%:p") let filepath = s:HowmExpa

    50 howm-mode.vim (2-27) mattn さんのパッチの取り込みと s:OpenMemo() の修正 - くふんを狙え
    sankaseki
    sankaseki 2008/02/22
    50 howm-mode.vim (2-27) mattn さんのパッチの取り込みと s:OpenMemo() の修正 - くふんを狙え
  • 49 howm-mode.vim (2-26) :HowmSchedule の追加 - くふんを狙え

    以前書いた calendar.vim との連携の話。さっさと実装したいんだけど、howm_vim には指定した日時を表示する機能がない。howm_vim 側に変更が必要なわけ。というわけで、ちょいちょいとユーザ定義コマンドを追加する。 目標としては、予定一覧(,y)で指定した日付を基準日にできるようにする。現状、今日以外を基準日にはできない。これを修正してやる。 まずは s:ShowSchedule() を可変長引数にしてやる。引数は文字列で、g:howm_date_pattern にしたがって指定できる。ただ動作だけが変わっても分かりにくいので、シンタックスのほうも syntax/howm_importantdate.vim から移動した。 plugin/howm-mode.vim function! s:ShowSchedule(...) " ... let today_s = exi

    49 howm-mode.vim (2-26) :HowmSchedule の追加 - くふんを狙え
    sankaseki
    sankaseki 2008/02/22
    49 howm-mode.vim (2-26) :HowmSchedule の追加 - くふんを狙え
  • 48 howm-mode.vim (2-25) パッチの公開とそのあてかた - くふんを狙え

    以前からぐずぐず言ってたパッチを公開。ついでに Windows 環境でのパッチのあてかたを書いた。 まあ念のため 以下の作業や、それが与えた影響については、すべて自己責任でおねがいします howm_vim の作者さんに一日一回くらい感謝してください 妙な動作をしても howm_vim の作者さんに文句を言わないでください 意見・感想・苦情は狙えのコメント欄に書いてください 同意できる方のみ、どうぞ ファイルの準備 まずは、ファイルを準備する。準備するものは四つ。 Vim ( 7.0 以上, +kaoriya, +migemo のものが理想 ) howm_vim ( 04-Jun-2006 のもの ) GNU patch ( Win32 版 ) howm_vim_kuhun.patch Vim は KaoriYa.net で配布されているものなら問題ない。スクリプト中で 7.0 以上という制

    48 howm-mode.vim (2-25) パッチの公開とそのあてかた - くふんを狙え
    sankaseki
    sankaseki 2008/02/19
    48 howm-mode.vim (2-25) パッチの公開とそのあてかた - くふんを狙え
  • 45 calendar.vim (3-1) まずは使ってみる - くふんを狙え

    きっかけは http://gtbleds.seesaa.net/article/4622139.html howm の使い方について検索していたら、カレンダーを表示しているサイトを見つけた。リンク先が切れていたので探してみたところ、calendar.vim というものだとわかった。これも対象に加えようと思う。 今回は、題のとおり、まずは使ってみる。 ダウンロードとインストール calendar.vim は www.vim.org で配布されている。そこからダウンロードして、適当な場所に配置して、vimrc で so calendar.vim 。いつもどおり。今回のは1ファイルのみなので、扱いやすい。 配布URL: http://www.vim.org/scripts/script.php?script_id=52 使い方を調べる さてさて、使い方を調べてみる。calendar.vim を開

    45 calendar.vim (3-1) まずは使ってみる - くふんを狙え
    sankaseki
    sankaseki 2008/02/17
    45 calendar.vim (3-1) まずは使ってみる - くふんを狙え
  • 43 howm-mode.vim (2-21) action-lock の強化 - くふんを狙え

    http://howm.sourceforge.jp/cgi-bin/hiki/hiki.cgi?UsageActionLock の action-lock 追加の例を見ていいなと思ったので、これができるようにしてみた。目標としては、vimrc にリストを書くと action-lock に追加されること。 plugin/howm-mode.vim まずは plugin/howm-mode.vim の修正。グローバル変数を追加する。 if v:version >= 700 && !exists('g:howm_actionlock_list') let g:howm_actionlock_list = [] endif 次に、s:DoActionLock() に、先に追加したグローバル変数を解釈するコードを追加する。ほとんど、コピペ。既存の action-lock にマッチせず、Vim7 の

    43 howm-mode.vim (2-21) action-lock の強化 - くふんを狙え
    sankaseki
    sankaseki 2008/02/12
    43 howm-mode.vim (2-21) action-lock の強化 - くふんを狙え
  • 42 howm-mode.vim (2-20) s:ShowSchedule() のなぞのエラーを修正 - くふんを狙え

    Vim を起動した直後に ,y などで検索一覧 ( s:ShowSchedule() ) を実行する。その後プレビューを表示させてから、:q 。これでエラーが出る。自分の環境だけかもしれないけど、不快なので修正する。エラーは以下。 E315: ml_get: 無効なlnumです: 93 E315: ml_get: 無効なlnumです: 93 E315: ml_get: 無効なlnumです: 93 続けるにはENTERを押すかコマンドを入力してください ここから、さらに放置すると( 設定によっては ) s:ShowPreview() ががんばってくれて、追加で大量のエラーが出る。 E121: 未定義の変数です: b:file1 ... s:ShowPreview() の修正 まず、原因がはっきりしている s:ShowPreview() を修正する。これは変数の有無を確認せずに使っているために

    42 howm-mode.vim (2-20) s:ShowSchedule() のなぞのエラーを修正 - くふんを狙え
    sankaseki
    sankaseki 2008/02/12
    42 howm-mode.vim (2-20) s:ShowSchedule() のなぞのエラーを修正 - くふんを狙え
  • 41 howm-mode.vim (2-19) 検索結果の出力フォーマットを変更、の修正 - くふんを狙え

    38 howm-mode.vim (2-16) 検索結果の出力フォーマットを変更で、ShowDirectory() ( ,a で使われる関数 ) の際に %filename% が表示されず困ることがわかった。なので、それにとりあえず対処。 " grep によって全文検索した結果を整形する. " TODO: 第一引数の扱いがイマイチ function! s:FormatSearchResult(...) " ... let lineFormat = (exists('a:1') ? a:1 : g:howm_lineFormat) " ... endfunction function! s:ShowDirectory() " ... call s:FormatSearchResult(g:howm_lineFormatShowDirectory) " ... endfunction if !

    41 howm-mode.vim (2-19) 検索結果の出力フォーマットを変更、の修正 - くふんを狙え
    sankaseki
    sankaseki 2008/02/10
    41 howm-mode.vim (2-19) 検索結果の出力フォーマットを変更、の修正 - くふんを狙え
  • 37 howm-mode.vim (2-15) VimGrepSearch の削除 - くふんを狙え

    以前 VimGrepSearch() 作成時に修正した GrepSearch() 呼び出し部分を再び修正。以前の形に近いものに戻った。これでVimGrepSearch() への呼び出しがなくなったので、VimGrepSearch() を削除する。 " TODO: 引数を考え直した方がいいかも " " searchWordType: searchWord の種類 " 0: 固定文字列 " 1: 正規表現 ( grep ) " 2: 正規表現 ( Vim ) function! s:FullTextSearch(searchWord, searchWordType) if a:searchWord == '' | return 0 | endif call s:OpenSearchWindow(a:searchWord, a:searchWordType) let path = s:HowmE

    37 howm-mode.vim (2-15) VimGrepSearch の削除 - くふんを狙え
    sankaseki
    sankaseki 2008/02/10
    37 howm-mode.vim (2-15) VimGrepSearch の削除 - くふんを狙え
  • 36 howm-mode.vim (2-14) GrepSearch と VimGrepSearch の統合 - くふんを狙え

    howm-mode.vim の s:GrepSearch() の第2引数の意味を変更することで VimGrepSearch と統合した。Vim7 以降なら Vim の正規表現が使用できるようになった。 " grepを使用してメモファイルを全文検索する. " " 固定文字列・正規表現 ( Vim ) の場合は " :vimgrep > g:howm_grepprg " 正規表現 ( grep ) の場合は " g:howm_grepprg " という優先順位で使用する. " " g:howm_grepprg の既定値は GNU grep ( windows では cygwin の GNU grep ) " " searchWordType: searchWord の種類 " 0: 固定文字列 " 1: 正規表現 ( grep ) " 2: 正規表現 ( Vim ) function! s:G

    36 howm-mode.vim (2-14) GrepSearch と VimGrepSearch の統合 - くふんを狙え
    sankaseki
    sankaseki 2008/02/08
    36 howm-mode.vim (2-14) GrepSearch と VimGrepSearch の統合 - くふんを狙え
  • 34 howm-mode.vim (2-12) HighlightSearchWord の修正 - くふんを狙え

    http://d.hatena.ne.jp/eclipse-a/20080118/1200634971 で書いていた s:HighlightSearchWord() にミスがあったので修正。ミスの内容は searchWordType == 2 のときに pat にあやまって、searchWordType を代入していた " b:searchWord にしたがって、ハイライトを設定する " b:searchWord は OpenSearchWindow() で設定される " OpenSearchWindow(), HighlightPreview() から呼ばれる。 " b:searchWordType を見て b:searchWord の解釈を変える " 0: 固定文字列 " 1: 正規表現 ( grep ) 既定値 " 2: 正規表現 ( Vim ) function! s:Highli

    34 howm-mode.vim (2-12) HighlightSearchWord の修正 - くふんを狙え
    sankaseki
    sankaseki 2008/02/05
    34 howm-mode.vim (2-12) HighlightSearchWord の修正 - くふんを狙え
  • 33 howm-mode.vim (2-11) 検索結果から新しい窓を開く2 - くふんを狙え

    http://d.hatena.ne.jp/eclipse-a/20080129/1201584967 の続き。 前回「検索結果から新しい窓を開く」を書いたところ、新しい窓で開くときにプレビューを消したいという意見があったので、それを踏まえて修正を加えた。s:OpenSearchLine() と、呼び出し側の二点の変更。 まずは s:OpenSearchLine()。 " 検索結果の一覧を表示するためウィンドウから, 検索結果のファイルに飛ぶために使 " われている関数. " " 第1引数: 新しいウィンドウで開くか否か " ( 既定値: 0 ( 現在のウィンドウで開く ) ) " 第2引数: プレビューを閉じるか否か " ( 既定値: 1 ( プレビューを閉じる ) ) " " 第1引数は実装的には検索結果を閉じるか否かなので, 真偽を逆にして解釈している. " 第2引数の既定値は :a

    33 howm-mode.vim (2-11) 検索結果から新しい窓を開く2 - くふんを狙え
    sankaseki
    sankaseki 2008/02/03
    33 howm-mode.vim (2-11) 検索結果から新しい窓を開く2 - くふんを狙え