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

denite.nvim + ag な file/rec の設定をさらに爆速にする

$
0
0

はじめのはじめに

この記事は denite.nvim + agと銘打ってありますが、おそらく他のファイル列挙ツール(ripgrepなど)とも連携できると思います。

はじめに

vim 使ってますか?
僕は IntelliJ を試したりをしたけど、やっぱり vim になりました。
PHP を書く時だけは未だに PHPStorm ですが。。。

今回はすでに高速な denite.nvim の file/rec を爆速にする設定を紹介します。

対象読者

  • 頭の悪いファイル数なプロジェクトで file/rec が遅くて困っている
  • denite.nvim を使っている
  • denite.nvim の matcher/ignore_globs を設定している
    • してないならしましょう!

設定

普通はこう設定していると思います。(ドキュメントにも書いてあるし!)

" file/rec に ag を設定call denite#custom#var('file/rec','command',['ag','--follow','--nocolor','--nogroup','-g',''])" 特定ディレクトリをリスティングしないcall denite#custom#filter('matcher/ignore_globs','ignore_globs',['.git','.svn','node_modules'])

この設定では「一度 ag で列挙してからフィルタで非表示にする」という状態です。
メンタルモデルとしてはわかりやすいのですが、端的にいうとエコじゃないです。
下記の設定に変えたところ爆速になりました。

lets:ignore_globs=['.git','.svn','node_modules']" そもそも ag のレベルで検索対象からはずすcall denite#custom#var('file/rec','command',[      \'ag',      \'--follow',      \]+ map(deepcopy(s:ignore_globs),{k,v->'--ignore='.v})+[      \'--nocolor',      \'--nogroup',      \'-g',      \''      \])" matcher/ignore_globs 以外のお好みの matcher を指定するcall denite#custom#source('file/rec','matchers',['matcher/substring'])" 他のソース向けに ignore_globs 自体は初期化call denite#custom#filter('matcher/ignore_globs','ignore_globs',s:ignore_globs)

終わりに

こういう tips を定期的に投げていこう運動やってます。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>