既存のファイル検索プラグインを一通りためした時(2016/11)に遅かったり重かったりしたので自分で作成した
既に1年近く愛用している
おすすめのファイル検索プラグインがありましたらコメントで教えてください
概説
/develop/project1配下でファイル検索実行時に~/.vim/tagsにproject1という名前の”ディレクトリ一覧ファイル”があればそのファイルから検索をしQuickfixに読み込む
動作チェック済み
Osx kaoriya-macvim
Win kaoriya-vim8.0 (Grepを使うためCygwinが必要)
実行
・:FS とコマンドを打つ
・Enter Filename: でファイル名を入力
(ファイル名の中に空白があればアスタリスクに置換してGrepされる)
・QuickFixを使っているので検索履歴を使える
:col
:cnew
導入
1.vimrcに追記
~/.vimrc
call dein#add('naoyuki1019/vim-quickfilesearch')letg:qsf_maxline=100 "検索結果がこの値を超えたら読み込みに時間がかかるのでメッセージを表示するのみ
letg:qsf_tags_dir='~/.vim/tags/' "保存場所
letg:qsf_ext='.dir.txt' "ファイル一覧ファイルの拡張子
letg:qsf_set_tag=1 "タグもセットで読む場合1デフォルト0letg:qsf_tag_ext='.tags' "タグファイルの拡張子
2.ディレクトリ一覧ファイルとタグファイルを作成するバッチを作る
設置イメージ
~/.vim
└─tags
├─project1.dir.txt <- /develop/[project1]/app/XXX.js などパスが一致する場合ここから読まれる
├─project1.tags
├─project2.dir.txt <- /dev/project2/xxx.css
└─project2.tags
ファイル一覧(フルパス)ファイルを作成するコマンド例
コマンドサンプル
//for osx
cd /develop/project1
find `pwd` -type d -name lib -prune -o -type f \( -name \*.php -o -name \*.js -o -name \*.css \) -print > ~/.vim/tags/project1.dir.txt
ctag -R --languages=PHP --langmap=PHP:.php --php-types=c+f+d -f /develop/project1 project1.tags
//for windows
cd c:\develop\helloworld
dir /s /b *.php *.tpl *.css *.js *.css > "%USERPROFILE%\.vim\tags\helloworld.dir.txt"
ctags -R --languages=PHP --langmap=PHP:.php --php-types=c+f+d -f "%USERPROFILE%\.vim\tags\helloworld.tags" "c:\develop\helloworld" & exit
いつか
現在の動作はディレクトリ〇〇下のファイルを開いている時にファイル検索をしたら~/.vim/tagsに存在する〇〇.dir.txtから検索するという仕様だが”editorconfig”のようにプロジェクトのルートにファイルが存在したらそこから自動で読み込むように変更したい……気が向いたら