この資料は Rust 製のコマンドラインツール hgrep について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
hgrep は ripgrepでファイルを検索して、batで結果を表示したときのように、検索結果をハイライト表示します。grepコマンドの-Cオプションと同じように。hgrepは、マッチする行が近ければ、1つのコードスニペットに含まれる行を表示します。grep -Cとは異なり、hgrepは空白行に関するいくつかのヒューリスティックを採用して、効率的なコンテキスト行の数を決定します。コマンド名は、Human-friendly GREP に由来しています。
GitHub - rhysd/hgrep: Grep with human-friendly search results
hgrep のインストールは次のように行います。
% cargo install hgrep
cargoはhgrepコマンドをソースからビルドするため、フィーチャーズフラグによって特定の機能を選んだり、他の機能を無効にしたりすことができます。例えば、grepの出力を標準入力から読み込んでhgrepを使用し、batプリンタは使用しない場合、syntect-printer
を有効にするだけで依存関係の数、インストール時間、バイナリサイズを劇的に削減することができます。
% cargo install hgrep --no-default-features --features syntect-printer
すべてのフィーチャーズはオプションで、デフォルトで有効になっています。少なくともbat-printer
またはsyntect-printer
のいずれかが有効である必要があります。
フィーチャーズ | 説明 |
---|---|
ripgrep | ripgrepライブラリを組み込みんだgrepの実装です。 |
場合によっては、パイプによるrgよりもパフォーマンスが向上します。 | |
syntect-printer | syntectライブラリで構築された独自のプリンタ実装です。 |
パフォーマンスと出力レイアウトは、私たちのユースケースに最適化されています。 | |
bat-printer | batのpretty printerの上に構築されたプリンター実装ですです。 |
hgrep [FLAGS] [OPTIONS] [PATTERN [PATH...]]