読者です 読者をやめる 読者になる 読者になる

agでファイル出力時もterminalと同じように閲覧したい

agことthe_silver_searcherをterminal上で使用した場合以下のような形式で出力されます

ag isatty
src/options.c
355:    if (!isatty(fileno(stdout))) {

src/print_w32.c
50:        !isatty(fileno(fp)) ||

これをファイルなどに書き込んだ場合、ファイルパスが先頭についた形で出力されます。

src/options.c:355:    if (!isatty(fileno(stdout))) {
src/print_w32.c:50:        !isatty(fileno(fp)) ||

これは出力先がterminalかどうかをisattyで判定しているので起きているのですが

351     /* If we're not outputting to a terminal. change output to:
352         * turn off colors
353         * print filenames on every line
354      */
355     if (!isatty(fileno(stdout))) {

terminalで見てる感じでファイルにも出力したいよねという感じでラーメン好きな人に相談したら

ag --heading --numbers isatty

こちらのオプションで似たような出力を得ることができました。

src/options.c
355:    if (!isatty(fileno(stdout))) {

src/print_w32.c
50:        !isatty(fileno(fp)) ||

便利ですね。

なお、こちらで使用されたagは以下のバージョンを使用しております

ag --version
ag version 1.0.2

Features:
  +jit +lzma +zlib