12

現在、mostポケットベルとして使用しています。ページの構文の強調表示は便利ですがman、それ以外の場合は色付きの構文の強調表示がありません (具体的には diff/C++ を探しています)。

一方、pygments素晴らしいプログラムです。それを使って色付きの出力を簡単に作成できます。

# ./pygmentize -f console256 ${file}
hg diff | ./pygmentize -f console256 -l diff

ここで、出力をページングできるようにしたいので、次を使用します。

# ./pygmentize -f console256 ${file} | most
hg diff | ./pygmentize -f console256 -l diff | most

この時点で、ほとんどの場合、次のようにすべての色付け制御文字を画面にダンプします。

^[[38;5;28;01mclass^[[39;00m ^[[38;5;21;01mheap_allocator^[[39;00m
{
^[[38;5;28;01mpublic^[[39;00m^[[38;5;241m:^[[39m

もちろん、これは読めません。manのページを調べましたが、most「これらの制御文字を印刷する代わりに色で表示する」オプションが見つかりませんでした。 . less_ most_ more_more

構文の強調表示をサポートするページャー、またはパラメーターとプログラムのクレイジーな組み合わせをサポートして、これを機能させることができるページャーはありますか? 最終的には、Mercurial からの差分とログを強調表示したいので、そこにショートカットがあるかもしれません...

4

5 に答える 5

10

提案してもvimpagerいいですか?

まず、最近のvimディストリビューション (6.0 以降だと思います)には、ページャー風モードのスクリプトが付属しています。非常にシンプルで機能的で、 と同様に動作しlessます。試してください: vim '+help less' +only.

さらに良いことに、Rafael Kitover は、より堅牢で強力なスクリプトvimpager. GitHub (またはvimscripts ) で入手できます。OS X で Homebrew を使用している場合は、簡単brew install vimpagerです。

その時点で、単にset $PAGER=vimpager、またはalias less=vimpager. それはうまく機能します。

ここに画像の説明を入力

于 2013-05-29T01:19:07.883 に答える
8

less -RANSI カラー シーケンスをそのまま表示します (キャレット表記に展開する代わりに)。これにより、シンタックスハイライトが機能します。

LESS=-R環境変数を作成して、これをデフォルトの動作にすることもできます。他のオプションについても同様です。を参照してくださいman less

于 2011-03-22T22:55:02.213 に答える
2

jed を使用してみてください。はい、これはテキスト エディターであり、ページャーではありませんが、非常に軽量であり、既定のインストールには、さまざまな種類のファイルと言語に対応する優れた配色が含まれています。

于 2011-03-15T18:41:50.717 に答える
1

Jed には、emacs のものと同様に、さまざまな言語用の構文強調表示モードがあります。たとえば、C プログラムをパイプした場合、' ESC ' を押してから ' x ' を押してから ' c-mode 'と入力すると、強調表示をオンにすることができます。php プログラムの場合 - 最後の部分を ' php-mode ' などに変更します ...

于 2012-03-31T10:17:13.327 に答える