回答:
highlight
同じ色のエスケープシーケンスをサポートする端末上xterm
:
highlight -O xterm256 your-file | less -R
rougify your-file | less -R
pygmentize your-file | less -R
source-highlight -f esc256 -i your-file | less -R
付属vim
のmacros/less.sh
スクリプトの助けを借りてページャーとして使用することもできますvim
(詳細については、以下を参照:h less
しvim
てください)。
私のシステムでは:
sh /usr/share/vim/vim74/macros/less.sh your-file
または、HTML出力をサポートする構文ハイライターを使用するelinks
か、GNUのようにw3m
ページャー(またはelinks -dump -dump-color-mode 3 | less -R
)として使用できますsource-highlight
。
source-highlight -o STDOUT -i your-file | elinks -dump -dump-color-mode 3 | less -R
less
より一般的に色に興味がある場合は、をご覧くださいlesspipe.sh
。たとえば、http://freecode.com/projects/lesspipeを参照してください。
lesspipe.shは、lessのマニュアルページで説明されているページャーlessの入力フィルターです。スクリプトはksh互換シェル(bash、zshなど)で実行され、lessを使用して、バイナリコンテンツのファイル、圧縮ファイル、アーカイブ、およびアーカイブに含まれるファイルを表示できます。
また、テキストエディターと同様にシェルスクリプト、perlスクリプトなどを色付けしますが、色付けを行うための「前処理」プログラムは使用しません。
lesspipe.sh
、私が質問を投稿する前に私が...覚えてしようとしていたものです
StéphaneChazelasの提案によると、highlight
show構文ハイライトを使用するbash関数を作成し、.bashrcなどに配置します。それは素晴らしく、速く、効果的です。
s(){ highlight --force -O ansi $1 | /usr/bin/less -R; }
ハイライトサポート202言語構文形式。をご覧くださいhighlight --list-scripts=langs
。
パッケージe2ansiを使用できます。これはmore
、やなどのページャーに構文強調表示のサポートを提供しますless
。
パッケージは、すべてのテキストエディターの母であるEmacsを使用して、実際の構文強調表示を実行します。追加のボーナスとして、Emacsによって通常実行される他のすべての変換(非圧縮ファイルなど)も実行されます。
以下はless
and を使用し
てファイルを表示した結果ですe2ansi
。
このパッケージは、e2ansi-cat
バッチモードでEmacsを起動し、ファイルを開き、構文を強調表示し、ANSIシーケンスを使用して結果をレンダリングするコマンドラインツールを提供します。
less
たとえば、次の変数を設定してこれを統合できます(initファイルの場所は異なる場合があります)。
export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"
上記の構成でless
は、元のターミナルウィンドウのコンテンツを復元more
しますが、プロンプトの後に新しいコンテンツを出力するだけです。
注:の古いバージョンを使用している場合less
、||
またはの-
構文をサポートしていない可能性があり
、その場合は単にを使用する必要がある場合があります
LESSOPEN=|/usr/local/emacs ...
。
less
パイプで使用するの「-」文字は、LESSOPEN
テキストをにパイプするときに入力フィルターも使用する必要があることを示しますless
。この場合、Emacsはテキスト自体のみに依存できます(ファイル名ではありません)。幸いなことに、Emacsはこのためのシステムを提供します。さらに、提供されたファイルファイル
e2ansi-magic.el
は追加のファイルタイプを設定します。例えば:
e2ansi
、でファイルを表示するときにテーマの色が保持されますless
。さまざまなソースから適切なカラーテーマを選択するか、独自にデザインすることができます。less
(ANSIシーケンス形式とターミナルウィンドウのマイナスの制限)。less
ファイルの解凍など、自動変換を実行するEmacs機能を利用します。実際、外部ツールを使用してバイナリファイルを人間が読める形式に自動的に変換するなど、あらゆる種類の変換を実行するようにEmacsに教えることができます。/USER@HOST:FILENAME
。e2ansi
Melpaで配布され、標準のEmacsパッケージシステムを使用してインストールできます。e2ansi
GitHubでホストされていますe2ansi
ページless
。構文強調表示と呼ばれます。
GNU Source-highlightは、ソースファイルを指定すると、構文が強調表示されたドキュメントを生成します。
lessfilter
以下のスクリプトを使用するか、次のless
ように自動的に呼び出すことができます。
export LESSOPEN="| /path/to/lessfilter %s"
export LESS=' -R '
私はこの記事を見つけて、次のように始めました。
#!/bin/sh
file -b -L "$1" | grep -q text &&
/usr/share/source-highlight/src-hilite-lesspipe.sh "$1"
(src-hilite-lesspipe.sh
同梱されてsource-highlight
いますが、すべてのディストリビューションに含まれているわけではありません)
export
。このコマンド less
は環境変数のフラグを使用するLESS
ため、答えには多少の作業が必要です。