gren 0.1.2 をリリースしました。
- -cで色付き表示
- -f(検索するファイルを限定), --if(検索しないファイルを指定), --id(検索しないディレクトリを指定)オプションを何個でも設定出来るように
- 探索ディレクトリを第2引数で渡す形ではなく、-dオプションで渡すように(AND検索への布石)
- AND検索に対応(引数に検索ワードを複数個渡すことで、絞り込み検索出来ます)
- --depth, --this で探索する階層数を指定出来るように
- -sでサイレントモード、マッチした行のみを表示する
--help
最新のオプション一覧です。
% gren -h gren [option] pattern -d, --directory DIR Start directory. (deafult:".") --depth DEPTH Limit search depth. --this "--depth 0" -i, --ignore Ignore case. -s, --silent Silent. Display match line only. --debug Debug display. -c Color highlight. -f, --file-regexp REGEXP Search file regexp. (Enable multiple call) --if, --ignore-file REGEXP Ignore file pattern. (Enable multiple call) --id, --ignore-dir REGEXP Ignore dir pattern. (Enable multiple call)
便利になった所とか
AND検索が出来るようになりました。google検索のように指定した複数のキーワード全てにマッチした行だけを表示するものです。直感的に絞り込み検索出来るようになります。こいつを実現するために第2引数で渡していたディレクトリ指定を、-dオプションに引っ越しました。
% gren split -f rb # splitを読んでいる部分を検索 gren/lib/gren/findgrep.rb:208: line = line.split(m[0]).join(TermColor.parse("<42>#{m[0]}</42>")) gren/pkg/gren-0.1.2/lib/gren/findgrep.rb:208: line = line.split(m[0]).join(TermColor.parse("<42>#{m[0]}</42>")) . . . dir : /Users/ongaeshi/Documents (4.44sec) files : 280 in 15847 (3.29MB in 460.72MB) match : 56 files, 123 hit # うわ、多いな... % gren split -f rb gsub # gsubで絞りこみ codes/TiddlyWiki/tools/cooker/splitter.rb:69: toprecipe << "recipe: #{@@tagsubdirectory}/split.recipe\n" codes/TiddlyWiki/tools/cooker/tiddler.rb:167: lines = (lines.gsub("\r", "")).split("\n",-1) . . # dir : /Users/ongaeshi/Documents (0.99sec) files : 280 in 15847 (3.29MB in 460.72MB) match : 8 files, 17 hit # これくらいならOK!!
-cを付けるとマッチ部分が色付けされます。
--thisは指定した探索ディレクトリだけを検索対象とするオプションです。ホームディレクトリにある.emacsや.bashrcを検索する時などに便利です。
--depthを使うと何階層下まで戻るかを指定出来ます。(--this == --depath 0 です。)
% gren global-set-key -d ~ --this # ホームディレクトリだけ検索 /Users/ongaeshi/.emacs:103:;(global-set-key "\C-\M-p" 'scroll-previous-10-line) /Users/ongaeshi/.emacs:104:(global-set-key "\M-p" 'scroll-previous-10-line) /Users/ongaeshi/.emacs:112:;(global-set-key "\C-\M-n" 'scroll-next-10-line) /Users/ongaeshi/.emacs:113:(global-set-key "\M-n" 'scroll-next-10-line) . . dir : /Users/ongaeshi (0.08sec) files : 26 in 38 (142.09KB in 244.76KB) match : 2 files, 74 hit %
-f(検索するファイルを限定), --if(検索しないファイルを指定), --id(検索しないディレクトリを指定)オプションを何個でも設定出来るようになりました。
絞り込み検索に便利です。
% gren FileTest lib/gren/findgrep.rb:91: unless FileTest.readable?(fpath) lib/gren/findgrep.rb:116: FileTest.directory?(fpath) && . . pkg/gren-0.1.2/lib/gren/findgrep.rb:91: unless FileTest.readable?(fpath) pkg/gren-0.1.2/lib/gren/findgrep.rb:116: FileTest.directory?(fpath) && . . README.rdoc:27:=== "FileTest" is retrieved below the present directory. README.rdoc:28: % gren FileTest . . dir : /Users/ongaeshi/Documents/gren (0.24sec) files : 34 in 36 (40.14KB in 56.05KB) match : 4 files, 66 hit % gren FileTest --id pkg --if README.rdoc # 大分結果が絞り込めた!! lib/gren/findgrep.rb:91: unless FileTest.readable?(fpath) lib/gren/findgrep.rb:116: FileTest.directory?(fpath) && lib/gren/findgrep.rb:152: @result.size += FileTest.size(fpath) lib/gren/findgrep.rb:161: @result.search_size += FileTest.size(fpath) dir : /Users/ongaeshi/Documents/gren (0.0sec) files : 17 in 18 (13.69KB in 20.18KB) match : 1 files, 4 hit % gren FileTest --id pkg --if README.rdoc --id lib # libまで除外すると・・ dir : /Users/ongaeshi/Documents/gren (0.0sec) files : 13 in 14 (4.32KB in 10.81KB) match : 0 files, 0 hit
今後のこと
基本的な機能はある程度入れることが出来ました、まだまだ便利にしていきたいと思います。
ご感想やご意見ありましたらコメント頂けると嬉しいです。