A Day in the Life

fuzzyfinder.vim 2.0

fuzzyfinder.vim 2.0

http://d.hatena.ne.jp/ns9tks/20080104/1199432216

Tag/TaggedFile 便利!!!ありがとうございます!!

一カ所、tags が読み込めないとエラー(set tags で指定したファイルがディレクトリだとしても、vim が tags として認識してしまう?)になって閉まったため、下記 diff のように変更しました。

また現在の fuzzyfinder.vim では、setlocal で設定した tags ファイルは読み込まれない(言語ごとに tags ファイル作って、ftplugin/ruby.vim などで setlocal tags+=ruby.tags などしてます)のですが、うまいことその tags からも補完することってできるのでしょうか。call OpenFuzzyFinder('tagged_file') したときの引数に tagfiles() を渡してやる方法しか思い浮かばないので…。

*** fuzzyfinder.vim     2008-01-05 01:05:23.000000000 +0900
--- fuzzyfinder.vim.orig        2008-01-05 01:03:48.000000000 +0900
***************
*** 1201,1210 ****
      let s:cache.tagged_file[cur_dir] = { 'data' : [], 'time' : localtime() }
      for [head, tail] in map(tagfiles(), '[fnamemodify(v:val, ":p:h"), fnamemodify(v:val, ":t")]')
        execute 'cd ' . head
!       if filereadable(tail) == 1
!         let s:cache.tagged_file[cur_dir].data +=
!               \ map(readfile(tail), 'fnamemodify(matchstr(v:val, ''^[^!\t][^\t]*\t\zs[^\t]\+''), ":p")')
!       endif
        cd -
      endfor
      let s:cache.tagged_file[cur_dir].data = Unique(s:cache.tagged_file[cur_dir].data)
--- 1201,1208 ----
      let s:cache.tagged_file[cur_dir] = { 'data' : [], 'time' : localtime() }
      for [head, tail] in map(tagfiles(), '[fnamemodify(v:val, ":p:h"), fnamemodify(v:val, ":t")]')
        execute 'cd ' . head
!       let s:cache.tagged_file[cur_dir].data +=
!             \ map(readfile(tail), 'fnamemodify(matchstr(v:val, ''^[^!\t][^\t]*\t\zs[^\t]\+''), ":p")')
        cd -
      endfor
      let s:cache.tagged_file[cur_dir].data = Unique(s:cache.tagged_file[cur_dir].data)
記事の一覧 >