ag や rg などのツールを使用する際のプロジェクト検索エクスペリエンスを向上させる vim プラグイン。
私は fzf.vim の:Ag
引用符なしで複数の単語をすばやく検索し、拡張検索構文を使用してリアルタイムで複数の結果を絞り込み、大規模なリファクタリング用のクイックフィックスを追加する fzf.vim の機能に触発されました。
:Ag function index
しかし、ack.vim の:Ack
? のようにコマンド ライン オプションを渡す機能が欠けていることに気付きました。
:Ack -Q -i 'function index' vendor
さらに、fzf.vim の:Ag
引用符を検索クエリのリテラル部分として扱いますが、これはコマンド ラインのag
と矛盾します。
したがって、このプラグインの目的は、お気に入りの検索ラッパーに両方の長所をもたらすことです。引用符の有無にかかわらず、複数の単語の検索を実行し、コマンド ライン オプションを渡し、すべて 1 つのコマンドで実行します。
fzf.vim と農業を使用した私のプロジェクト検索ワークフローについて詳しく読んでください ❤️
vim-plug などを使用してインストールします。
Plug 'jesseleite/vim-agriculture'
すでに fzf.vim を使用している場合は、提供されている:AgRaw
/ :RgRaw
コマンドを使用できます。
:AgRaw func.*index
:AgRaw 'func.*index'
:AgRaw -Q 'function index()' app/Http/Controllers
:RgRaw
についても同様に、上記の例のAgRaw
をRgRaw
に置き換えるだけです。
別の検索ラッパーを使用している場合は、入力をagriculture#smart_quote_input()
でラップする必要があります。
提供されたコマンドのいずれかを使用している場合は、 .vimrc
内の提供された<Plug>
マッピングにフックできます。
nmap <Leader>/ <Plug>AgRawSearch
vmap <Leader>/ <Plug>AgRawVisualSelection
nmap <Leader>* <Plug>AgRawWordUnderCursor
:RgRaw
についても同様に、上記の例のAgRaw
をRgRaw
に置き換えるだけです。
提供されたコマンドのいずれかを使用している場合は、 .vimrc
でデフォルトのコマンド ライン オプションを設定することもできます。
let g:agriculture#ag_options = '--case-sensitive'
:RgRaw
とg:agriculture#rg_options
についても同様です。
提供されているコマンドのいずれかを使用していて、CLI の一貫性のためにスマート クォートを無効にしたい場合は、次の手順を実行します。
let g:agriculture#disable_smart_quoting = 1
プレビュー ウィンドウは、多くの fzf.vim コマンドでデフォルトでレンダリングされるようになりました。この動作をカスタマイズまたは無効にしたい場合は、プレビュー ウィンドウに関する fzf.vim のドキュメントを参照してください。
次の条件が満たされない限り、入力は自動的に引用されます。
:Ag -Q "Already quoted this pattern."
:Ag Why you "scruffy looking nerf herder"!
:Ag Who's scruffy looking?
:Ag -Q function index
:Ag Which way to the beach? -> that way!
:Ag an escaped pattern vendor/folder
TL;DR: 引用符やダッシュを使用する場合、またはパスを渡す必要がある場合は、独自のパターンを引用/エスケープすることをお勧めします。そうすれば、vim-agriculture が邪魔にならなくなります。
ただのハッキング?