以下を試してください:
less -R
man less
から :
-r
または --raw-control-chars
「生の」制御文字が表示されるようにします。 (...)
-R
または --RAW-CONTROL-CHARS
-r
のように ただし、ANSI の「色」エスケープ シーケンスのみが「生」形式で出力されます。 (...)
(2020年更新)
より速い方法は less -R
を使用することです 参照。 https://superuser.com/a/117842/34893
pygmentize のパワーをより少ない - 自動的に利用できます! (手でパイプする必要はありません。)
pygments
をインストール パッケージマネージャーまたは pip (おそらく python-pygments
と呼ばれます) ) または http://pygments.org/download/ から入手してください。
ファイル ~/.lessfilter
を書き込みます
#!/bin/sh
case "$1" in
*.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
*.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
*.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
*.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
pygmentize -f 256 "$1";;
.bashrc|.bash_aliases|.bash_environment)
pygmentize -f 256 -l sh "$1";;
*)
if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
pygmentize -f 256 -l sh "$1"
else
exit 1
fi
esac
exit 0
.bashrc
で 追加
export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'
また、 ~/.lessfilter
にする必要があります 実行することで実行可能
chmod u+x ~/.lessfilter
Debian でテスト済み。
あなたはアイデアを得る。もちろん、これをさらに改善して、より多くの拡張機能を受け入れたり、bash 以外のインタープリターのシバンを解析したりできます。それについては、他の回答を参照してください。
このアイデアは、Pygments のメーカーの古いブログ投稿から生まれましたが、元の投稿はもう存在しません。
別の投稿で答えを得ました:Less と Grep:パイプを grep から less に使用すると、色付きの結果を得る
<ブロック引用>
grep --color
を実行するだけで grep --color=auto
を意味します これは、出力が端子であるかどうかを検出し、そうであれば色を有効にします。ただし、パイプを検出すると、色を無効にします。次のコマンド:
grep --color=always "search string" * | less -R
常に色付けを有効にし、自動検出を無効にします。色の強調表示が少なくなります。
警告:--color=always
を入れないでください エイリアスとして、時々物事を壊します。 --color=auto
があるのはそのためです。 オプション。