web-dev-qa-db-ja.com

色付きの出力の保持を減らすことができますか?

出力をモノクロ化しないようにできますか?

たとえば、git diffからの出力は色付けされていますが、git diff | lessは色付けされていません。

364
ripper234

使用する:

git diff --color=always | less -r

--color=alwaysは、出力が(ttyではなく)パイプであってもgitにカラーコードを出力するように指示するためのものです。そして-rは、これらのカラーコードと他のエスケープシーケンスを解釈するようlessに指示するためのものです。使用する -R ANSIカラーコードのみ。

435

別のオプションは、色を有効にし、ポケットベルとして「less -r」を使用することです。

git config --global color.ui true
git config --global core.pager 'less -r'

これは

[color]
    ui = true
[core]
    pager = less -r

〜/ .gitconfig

詳細については、 プロGitブック を参照してください。

color.uiの可能な値は、git-configのmanページにあります。 man git-config | grep "color.ui$" -A8の出力は

color.ui
    This variable determines the default value for variables such as color.diff and
    color.grep that control the use of color per command family. Its scope will expand as
    more commands learn configuration to set a default for the --color option. Set it to
    false or never if you prefer Git commands not to use color unless enabled explicitly
    with some other configuration or the --color option. Set it to always if you want all
    output not intended for machine consumption to use color, to true or auto (this is the
    default since Git 1.8.4) if you want such output to use color when written to the
    terminal.

Lessには-r--raw-control-chars)オプション、または-R(ANSIエスケープシーケンスのみ)も使用します。

~/.bashrcにこのエイリアスがあります

alias rless='less -r'
29
enzotib

また、treeには色を強制するオプションがあります。

tree -C | less -r

lsについても同様です:

ls -lR --color | less -r
17

「use less -r ":

環境変数LESSに値rを使用します(またはrをすでに存在するものに追加します)。

例:.bashrc

export LESS=-Xr

Xは停止します 終了時に画面がクリアされなくなります。

11
MortenSickel

誰かがjqlessでjsonをページングすることに興味がある場合は、以下を使用して実現できます。

jq -C <jq args> file.json | less -R

例えば.

jq -C . file.json | less -R

ソース: https://github.com/stedolan/jq/issues/764#issuecomment-95355331

9
dimid

これは古く、多くの人がすでに正しい答えを提供していることを知っていますが、less -Rではなくless -r ANSIカラーのみが必要な場合-r文字の表示に問題が発生する場合があります。

マニュアルから:

   -r or --raw-control-chars
          Causes "raw" control characters to be displayed.   The  default
          is  to display control characters using the caret notation; for
          example, a control-A (octal 001) is displayed as  "^A".   Warn‐
          ing:  when the -r option is used, less cannot keep track of the
          actual appearance of the screen (since this depends on how  the
          screen responds to each type of control character).  Thus, var‐
          ious display problems may result,  such  as  long  lines  being
          split in the wrong place.

   -R or --RAW-CONTROL-CHARS
          Like  -r,  but only ANSI "color" escape sequences are output in
          "raw" form.  Unlike -r, the  screen  appearance  is  maintained
          correctly  in  most  cases.   ANSI "color" escape sequences are
          sequences of the form:

               ESC [ ... m
6
Naheel