Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

grep+pecoの検索結果を素早くvimで開く

$
0
0

pecoってどう便利なんだろう、と思っていたのだけど、その便利さを実感できたのでメモ。

やりたいこと

「hoge」でgrepかけて、引っかかったファイルのうち任意のものをviで開きたい
ってことがよくあります。

$ grep hoge -Rni app/
app/controller/hoge_controller.rb:3:class HogeControllerapp/controller/hoge_controller.rb:12:    tmp = hoge.hogege.hugogoapp/controller/hoge_controller.rb:42:    tyome = hoge.sotr_by(&:bar)app/model/hoge.rb:3:class Hoge :$ vi app/controller/hoge_controller.rb +42

面倒くさい。

検索結果から選んでvimで開く

ついでに、grepよりag(the_silver_searcher)のほうが好きなので、そっちを使います。

# agで検索した結果から選択し、ファイルを開くfunction agvi(){path=$(ag $*| peco | awk -F: '{printf  $1 " +" $2}'| sed -e 's/\+$//')if[ -n "$path"];then
    vim $pathfi}
$cd$GOPATH/src/github.com/peco/
$ agvi chan

grep select

agのオプションを使って、ファイル名検索とかも簡単

$cd$GOPATH/src/github.com/peco/
$ agvi -g re

find select

解説

path=$(ag $*| peco | awk -F: '{printf  $1 " +" $2}'| sed -e 's/\+$//')

ag $*# agviに渡した引数をすべて使ってagする| peco        # 結果をpecoする| awk -F: ..  # pecoで選んだものを「ファイル名 +行数」の形に整える| sed -e ..   # 上ので行数がないなら「+」も消す# 上の結果を変数pathに入れて、pathが空白でないならvimで開く# pecoの画面でESCなど使って何も選択しない時などを考慮if[ -n "$path"];then
  vim $pathfi

Viewing all articles
Browse latest Browse all 5608

Trending Articles