#author("2020-04-27T16:24:47+00:00","","")
#author("2022-09-03T07:08:46+09:00","","")
#topicpath


///////////////////////////////////////////////////////////////////////////////
* 目次 [#p63d201f]
#contents();

///////////////////////////////////////////////////////////////////////////////
* ripgrep [#qf8f4cb3]
- ripgrep は、grep の高速な代替コマンド。

///////////////////////////////////////////////////////////////////////////////
* build [#pba858da]
- debian9 にはパッケージがないので、使うのであればビルドする必要がある。
- build には cargo (The Rust package manager) が必要なので、入ってない場合は入れる。
 # apt-get install cargo
+ ソースコードの取得
 $ git clone https://github.com/BurntSushi/ripgrep.git
 $ cd ripgrep
 $ git checkout refs/tags/12.0.1
+ README.md の記載に従いビルドする
 $ cargo build --release
+ ビルド出来たか確認する
 $ ./target/release/rg --version
+ ビルドして出来たコマンドの場所に環境変数 PATH を通すか、コマンドファイルを PATH の通っているところに移す。

///////////////////////////////////////////////////////////////////////////////
* grep とのオプション比較 [#r53574b8]
|~option (ripgrep)    |~option (grep)       |~description                                       |
|<pattern>            |<pattern>            |match or unmatch pattern                           |
|~option (ripgrep)    |~option (grep)       |~description                                         |
|<pattern>            |<pattern>            |match or unmatch pattern                             |
|-e <pattern>         |-e <pattern>         |<pattern> をパターンとして指定する(POSIXに準拠)    |
|-f <file>            |-f <file>            |パターンを <file> から1行を1パターンとして読み込む   |
|                     |-E, --extended-regexp|PATTERN  を拡張正規表現 (ERE) として扱う            |
|                     |-E, --extended-regexp|PATTERN  を拡張正規表現 (ERE) として扱う             |
|-E, --encoding <ENC> |                     |検索する全てのファイルのエンコーディングを <ENC> とする |
|-F, --fixed-strings  |-F, --fixed-strings  |PATTERN を改行で区切られた正規表現ではない文字列として扱う |
|-A <num>             |-A <num>             |検索結果に、その後の <num> 行を付加する              |
|-B <num>             |-B <num>             |検索結果に、その前の <num> 行を付加する              |
|-C <num>             |-C <num>             |検索結果に、その前後の <num> 行を付加する            |
|-H                   |-H                   |検索結果にファイル名を付加する                       |
|-h                   |--help               |ヘルプを表示                                       |
|-h                   |--help               |ヘルプを表示                                         |
|-I, --no-filename    |-h                   |検索結果にファイル名を表示しない                     |
|                     |-I                   |バイナリファイルを検索対象外とする(ripgrepはデフォルトではバイナリを検索対象としない) |
|-j,--threads <num>   |                     |使用するスレッドの概数を <num> にする                |
|-a                   |-a                   |バイナリファイルを検索対象とする                     |
|--no-filename        |-h                   |検索結果にファイル名を付加しない                     |
|-i, --ignore-case    |-i, --ignore-case    |入力ファイル、検索パターンの療法で、大文字・小文字を区別しない |
|-n                   |-n                   |検索結果に行番号を付加する                           |
|-N                   |                     |検索結果に行番号を付加しない                         |
|-q                   |-q                   |標準出力に何も出力しない                             |
|-r,--r <replace-text>|                     |検索結果のパターンマッチした文字列を、 <replace-text> で置換して表示する |
|                     |-r,-R,--recursive    |下位のディレクトリを再帰的に検索する(ripgrepはデフォルトで再帰読込する) |
|-t <TYPE>            |                     |ファイルタイプが<TYPE> のものを検索対象にする        |
|-v                   |-v                   |<pattern> で指定された文字列を含まないものを検索する  |
|-v                   |-v                   |<pattern> で指定された文字列を含まないものを検索する |
|-w, --word-regexp    |-w, --word-regexp    |マッチする部分が完全な単語を形成するときにのみ、その行を選択する |
|--no-heading         |                     |grep 形式で出力する                                 |
|--no-heading         |                     |grep 形式で出力する                                  |


///////////////////////////////////////////////////////////////////////////////
* emacs から使う [#bd8a9737]
- [[ripgrep.el>https://github.com/nlamirault/ripgrep.el]] または [[rg.el>https://github.com/dajva/rg.el]] を導入する。
//=============================================================================
** ripgrep.el [#emacs-ripgrep_el]
//-----------------------------------------------------------------------------
*** ripgrep.el の取得 [#bc3f5f43]
- 下記から取得出来る:
 $ git clone https://github.com/nlamirault/ripgrep.el.git

//-----------------------------------------------------------------------------
*** 設定 [#ydee1aeb]
- ${HOME}/bin などに rg コマンドファイルがある場合、 ripgrep.el はコマンドを見付けられない場合がある。
このときは、以下のように require した後で設定を上書きする:
 ; ripgrep.el を読み込む
 (require 'ripgrep)
 ; rg (ripgrep実行形式ファイル) へのパス
 (setq ripgrep-executable "~/.cargo/bin/rg")
- ripgrep.el を使用する際に rg へ渡したいオプションがある場合は、同様にして以下を設定する:
 ; rgに渡すオプション
 (setq ripgrep-arguments '("-S"))

///////////////////////////////////////////////////////////////////////////////
* 参考リンク [#k9d53c87]
- [[新世代grep 'ripgrep' - エクセレンス★ブログ>https://www.excellence-blog.com/2019/05/10/%E6%96%B0%E4%B8%96%E4%BB%A3grep-ripgrep/]]
- [[第579回 高速で便利なgrep「ripgrep」を活用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社>https://gihyo.jp/admin/serial/01/ubuntu-recipe/0579]]
- [[ripgrep.el>http://emacs.rubikitch.com/ripgrep/]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS