Friday, March 3, 2017

コマンド一発でソースコード検索&表示できる「peco」改が凄い!

lestrratさんがやってくれました。

ずいぶん前から、ソースコードを検索して読みやすいコマンドはないかなーと思っていました。個人的にはackで検索して見つかったファイルをlessで開いて再びキーワードを入れて当該行までジャンプしていたのですが、毎回毎回めんどくさい感じでした。コマンド一発でインクリメンタル検索してキーワード周辺のソースコードを読めるツールが欲しいなぁって思ってたんです。

とあるslackでお昼時に、mattnさんと「ほしいですよねー」という話から始まって、vimにあるgrepとかも物色しながら「いいのないねー」とか言ってたらkanさんが「@lestrrat 案件だ」って言い出して牧さんが召喚されてついさっきpecoに必要な機能が追加されてました。速いw

ためしにpicotlsの開発ディレクトリでpecoの一行ラッパーperoを起動し、「EVP_Digest」を検索してみました。こんな感じ。


こんなに直感的にソースコードが読める。
コマンドラインになれた人ならイメージ湧くかと思います。インデックスを作るみたいな下準備も何も必要ありません。
ただコマンドを実行するだけで対話的に検索して表示できる。
すばらしい!
こういうのが欲しかったんです。
ただまだ、pecoの本機能はまだtopic/commandブランチからマージされていませんし、バグがあるかもしれません。また高機能にするつもりもないでしょうから使用目的を選ぶのが先決かと思います。

ちなみに、こんな感じの一行ラッパーを書いて使ってます。pero --cc とやれば C のコードが、pero --java とやれば Java のコードだけが検索対象になります。

#! /bin/sh

exec ack "$@" . | peco --exec 'awk -F : '"'"'{print "+" $2 " " $1}'"'"' | xargs less '

ありがたや。ありがたや。

あわせて読みたい:「Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

18 comments:

  1. I am waiting for your coming pictures. I wish you all good luck for your coming blogs and posts. Keep sharing!
    starfall | barney | abcya

    ReplyDelete


  2. The share your really gives us excitement. Thanks for your sharing. If you feel tired at work or study try to participate in our games to bring the most exciting feeling. Thank you!
    hotmail login | red ball | 192.168.1.1

    ReplyDelete
  3. Thanks for your share, hope that you will post more blog soon.
    driving directions

    ReplyDelete
  4. By default, hotmail keeps you logged in until you use the Sign Out button to end the session or 24 hours have passed since you logged on. This can mean that somebody else who passes by your computer while you're away has access to your emails, and can write some from your hotmail account.

    ReplyDelete
  5. Really a great addition. I have read this marvelous post. Thanks for sharing information about it. I really like that. Thanks so lot for your convene.

    - five nights at freddy's

    ReplyDelete
  6. I enjoyed over read your blog post. Your blog have nice information, I got good ideas from this amazing blog. I am always searching like this type blog post. I hope I will see again.

    * super mario world
    * madalin stunt cars 2
    * slope

    ReplyDelete
  7. • Your post has many fine detail information. I read your article and I actually| like it. I want to thank posting this great post.
    * Street view
    * hotmail sign
    * Boy names starting with V

    ReplyDelete
  8. Thank you so much for your suggestion and discuss these important points for blog commenting.
    The points you are listed above, really appreciable and will really help in blog commenting or commenting on other posts or topic.
    http://lootindiadeals.com
    http://Whatsappstatus33.com
    https://healthylifeandshape.com
    https://latestwhatsappstatus.blogspot.com

    ReplyDelete
  9. The blog or and best that is extremely useful to keep I can share the ideas of the future as this is really what I was looking for, I am very comfortable and pleased to come here. Thank you very much.
    animal jam | five nights at freddy's | hotmail login

    ReplyDelete
  10. Truly an amazing post.I really like it.Thanks for sharing with us.
    - trump twitter

    ReplyDelete
  11. The blog or and best that is extremely useful to keep I can share the ideas of the future as this is really what I was looking for, I am very comfortable and pleased to come here. Thank you very much.

    -- happy wheels --

    ReplyDelete
  12. I will make sure to bookmark your blog and may come
    back later in life. I want to encourage continue your great posts,
    have a nice evening!
    Sony Liv Live
    Totalsportek Live Stream
    Supercopa Barcelona vs Real Madrid Live Stream

    ReplyDelete