動機
- 速い
- README にも書いてあるけど、ベンチマーク見る限りエグいぐらい速い
- 正直 grep にそこまで不満があるわけでもないが、そこまで言われると体感してみたい
作業
この勢いに乗って、そのまま zplug で導入していく。
# ripgrep
zplug "BurntSushi/ripgrep", \
from:gh-r, \
as:command, \
rename-to:rg
導入自体はこれで終わりなんだけど、ついでに fzf + ripgrep で爆速検索できるようにしてみる。これは fzf の README に載っているので、素直にやっていく。
# interactive ripgrep
fzgrep() {
INITIAL_QUERY=""
RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case "
FZF_DEFAULT_COMMAND="$RG_PREFIX '$INITIAL_QUERY'" \
fzf --bind "change:reload:$RG_PREFIX {q} || true" \
--ansi --phony --query "$INITIAL_QUERY" \
--preview 'cat `echo {} | cut -f 1 --delim ":"`'
}
基本的にコピペだけど、 bat
はとりあえずいいやと思ったので cat
で代用している。シンタックスハイライトが欲しくなったら考えよう。
爆速である。一切インデックスを使わずファイルを全文検索してこの速度がでるのか。すげー。
さっそく Vim と連携していく。init.vim に以下を追記した。
" :grep で ripgrep つかうやつ
if executable("rg")
let &grepprg = 'rg --vimgrep --hidden > /dev/null'
set grepformat=%f:%l:%c:%m
endif
これで Vim 内部から :grep [pattern]
で ripgrep を利用したファイル検索を行うことができるようになる。
爆速である。はやすぎワロタである。これで記憶力に頼ることなく気軽に全文検索をかけまくって作業ができるようになった。ヨシ!
zplug を導入するanyenv から asdf に乗り換えるpeco から fzf に乗り換えるripgrep を導入するg
エイリアスに登録されている移動コマンドをキーバインド化する- Dein から vim-plug に乗り換える
- Defx から fern に乗り換える
- ソースコード全文検索を ripgrep でできるようにする
- ファイル名指定移動を Denite から fzf に移行する
- Denite を消す
- nvim-typescript 突然死の真相を探る
- Rails 開発を便利にする何かを眺める
- Tmux の設定を見直す
- Zsh 初期設定を理解する
- GitHub CLI を導入する
- 補完について思いを馳せる