1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

App::Greple チュートリアルAdvent Calendar 2021

Day 12

greple #12 初期設定ファイル .greplerc

Last updated at Posted at 2021-12-11

初期設定ファイルを使う

greple は、UNIX の他の多くのコマンドと同様に、ホームページに初期設定ファイル (~/.greplerc) を用意することで、起動時にそれを読み込むことができます。この中では、様々な設定が可能です。

default: デフォルトオプション

option 命令で新しいオプションを定義することができます。中でも default という名前は特別で、実行時に自動的に付与するオプションを指定することができます。たとえば、次のように設定すると、ハイライトモードが常に有効になります。

option default --color=always

さらに、行番号を表示させたければ、このようにします。default の定義が複数行あった場合には、最後の定義だけが有効になります。

option default --color=always -n

option: オリジナルオプション

自分でオリジナルのオプションを定義することもできます。次のように設定しておけば --sushi と書くだけで、そこに定義したオプション指定したことになります。

option --sushi --outside '^\S+' --exclude '^お子様セット.*'

image.png

-do はデバッグ用のオプションで、最終的に実行されるオプションを表示します。

define: マクロ定義

複雑なオプションを定義する際には、マクロによる文字列置換を使用することができます。

define {base03}  #002b36
define {base02}  #073642
define {base01}  #586e75
define {base00}  #657b83
define {base0}   #839496
define {base1}   #93a1a1
define {base2}   #eee8d5
define {base3}   #fdf6e3
define {yellow}  #b58900
define {orange}  #cb4b16
define {red}     #dc322f
define {magenta} #d33682
define {violet}  #6c71c4
define {blue}    #268bd2
define {cyan}    #2aa198
define {green}   #859900

option  --solarized \
        --cm {yellow}  \
        --cm {orange}  \
        --cm {red}     \
        --cm {magenta} \
        --cm {violet}  \
        --cm {blue}    \
        --cm {cyan}    \
        --cm {green}

autoload: モジュールの自動読み込み

autoload は、モジュールを自動的に読み込むための命令です。次の設定は --dig および --git オプションは dig モジュールで定義されていることを指示します。--dig オプションは -Mdig --dig に展開され、dig モジュールが自動的に読み込まれます。

autoload -Mdig --dig --git

__PERL__: 任意コードの実行

.greplerc の中に __PERL__ という文字列があると、それより後の内容を Perl プログラムとして評価します。

greple のオプションの中には、任意の関数を呼び出すことができるものがあります。たとえば --begin オプションを使うと、ファイルを検索する前にその内容に対して行う処理を指定することができます。

.greplerc に次のようなコードを用意したとします。

__PERL__
sub remove_header {
    s/\A---\n(.+\n)+---\n\n*//;
}

すると、次のようにして、マークダウンファイルを検索する前に、ヘッダ部分を削除することができます。

greple --begin '&remove_header' *.md

他の言語にも対応できるように、このような形式にしていますが、今のところ対応しているのは Perl だけです。

まとめ

greple の初期設定ファイル .greplerc について紹介しました。

オプションを組み合わせることで、様々なタイプのデータに対応する複雑な処理を実現することができますが、どうしてもコマンド行が複雑化してきます。.greplerc に自分でよく使うオリジナルオプションを定義することで、作業を効率化することができます。

デフォルトオプションについては、.greplerc に記述する以外に、GREPLEOPTS という環境変数を設定する方法もあります。

SEE ALSO

  1. https://qiita.com/kaz-utashiro/items/5b6bcbe54891b3bd9db5
  2. https://qiita.com/kaz-utashiro/items/eb8c7067e6de34842fe3
  3. https://qiita.com/kaz-utashiro/items/165e744d4250adedc4c1
  4. https://qiita.com/kaz-utashiro/items/439e6abcecf36c520703
  5. https://qiita.com/kaz-utashiro/items/24ac0b8fdd30b598e069
  6. https://qiita.com/kaz-utashiro/items/a1ba4e3d07cf37dc25e3
  7. https://qiita.com/kaz-utashiro/items/0c8c944c17a72724b771
  8. https://qiita.com/kaz-utashiro/items/8783c2fd0cc4315b9a3d
  9. https://qiita.com/kaz-utashiro/items/84f5a6be6bf996076c64
  10. https://qiita.com/kaz-utashiro/items/ebc7ea99f800cfc8c90c
  11. https://qiita.com/kaz-utashiro/items/25a14e75380c39b5e0af
  12. https://qiita.com/kaz-utashiro/items/ebbeb8a5538a15ff04fc ←イマココ
  13. https://qiita.com/kaz-utashiro/items/b265deef9c9b1953a414
  14. https://qiita.com/kaz-utashiro/items/2b20e0226cffde213ce0
  15. https://qiita.com/kaz-utashiro/items/16b5142ef7a89aa35380
  16. https://qiita.com/kaz-utashiro/items/d19fe5ee859f31ce172c
  17. https://qiita.com/kaz-utashiro/items/09a5f5cf08ce314e2add
  18. https://qiita.com/kaz-utashiro/items/6e4b1f51455e587ef743
  19. https://qiita.com/kaz-utashiro/items/010f141f17e855aab4fc
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?