JetBrains IDEのCommand-line Launcherとag/pecoを使って検索した行を開く
本記事の目指すところ
下記Gifのように検索して開くことができるようになります
JetBrains IDEとは
JetBrains社の作るIDEたちのことです。 有料IDEですが、一番勢いのあるIDEの会社だと思います
https://www.jetbrains.com/products.html?fromMenu
僕自身も下記IDEたちを使っています
- Rider
- PyCharm
- AppCode
- RubyMine
- WebStorm
前回(結構昔)はJavaScriptを使ったようなので今回はWebStormを使って説明します
Command-line Launcherの準備
JetBrains IDEにはコマンドラインから起動できるCommand-line Launcherがあります。
RubyMineはデフォルトで使えるようになっているっぽいですが、基本的には Tools > Create Command-line Launcher
から生成します
ag / pecoの準備
ag
ag
というのは ack
より早い ack
みたいな検索コマンドですね。
ack
って何って言われたら説明難しいですが、ファイルから任意の文字列を検索してくれる便利なやつです
https://github.com/ggreer/the_silver_searcher
peco
peco
というのは標準出力から受け取ったものをいい感じにフィルタリングしてくれるコマンドです
インストール
多分どっちもHomeBrewで入れられるはずです(試してない)
$ brew install ag $ brew install peco
.bashrc の準備
WebStormなどのJetBrains IDE内のTerminalから実行できるように .bashrc
に function
を書きます
ワンライナー力大事
function agwebstorm() { ag $1 | peco --query "$LBUFFER" | perl -ne 'chomp; my @fields = split /:/, $_; print "--line ${fields[1]} ${fields[0]}"' | xargs webstorm }
やってることとしては ag
で検索したやつを peco
でフィルタリングしてファイル名と行数をいい感じにCommand-line Launcherに渡している感じです