「less」または「more」でファイルを読み取るとき、どのようにコンテンツを色で取得できますか?


415

コマンドlessまたはを使用してLinuxでファイルを読み取るときmore、どのようにコンテンツをカラーで取得できますか?


5
これは関連しているようです:superuser.com/questions/36022/less-and-grep-color-役立ちますか?
ジョニック

7
この質問のタイトルは非常に誤解を招くものです。このページにアクセスする多くの人は、色付きの出力を持つコマンドを次のようにパイプするときに発生する色の問題の解決策を期待していますless。色は失われます。(その「パイピングの問題」への答えにはless -Runbufferなどが含まれます。)しかし、実際の質問はファイル開くことを指します!—あいまいさは主に質問のタイトルにありますが、それ以外にも、質問はまだ広すぎます。「ファイルを読む」は任意のファイル(おそらくプレーンテキスト)を参照できます。(まあ、「色でコンテンツを取得する」とは、おそらく構文の強調表示を指します。)
myrdd

私は自分自身を修正する必要があります。14の回答のうち3つ(または4)だけがOPの実際の質問に欠けています:ChristopheDPuneetおよびOnlyjobによる回答。そして多分jbbr。それでも、それらの回答のうち2つは、3つの最高投票数の一部です。
myrdd

@myrdd「シンタックスハイライトは、」関連する用語は、(?それは色を追加していない、色を示すについて尋ねる)...その後でless -R例えば、同様のファイル上で動作しますls --color=always > /tmp/file && less -R /tmp/file
ゲルトファンデンベルグ

1
@myrdd 2つのうちのいずれかを尋ねる質問はおそらくこれの重複としてマークされるため、質問が「尋ねられているものが不明」として閉じられるのが最も理にかなっているかもしれません...投票者の解釈に基づいて...)(私のユースケースは、(迷惑なことに)カラーエスケープコードを含むログファイルでした)
Gert van den Berg

回答:


149

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メーカーからの古いブログ投稿から生まれましたが、元の投稿はもう存在しません。


6
ソースコードファイルを色付けする場合は、を実行して〜/ .lessfilterを実行可能にする必要もありますchmod u+x ~/.lessfilter。また、pygmentize(pygments.org/download)をインストールする必要があります。
セルギーベロゾロフ

誰も私のようなコマンドを実行したときに、それは私のためには効果がありません、これは動作していることを確認することができますls -l | less
PUK

7
@pukのようなことができますls --color=always -l | less -R。入力するのは当然ですが、のようなエイリアスを作成することもできますll。これは、追加のライブラリを使用したくない場合です。
PhilT 14

2
@SergiyByelozyorovのコメントを回答に追加しました。
-andrybak

2
私の編集は拒否されたので、代わりにコメントとして投稿します。間接的にコマンドの終了コードをテストしないでください。使用できますif grep -q "#\!/bin/bash" "$1"-q標準出力を抑制します)。で標準エラーをリダイレクトできます2>/dev/null
トム・フェネシュ

503

以下を試してください:

less -R

からman less

-r または --raw-control-chars

「生の」制御文字を表示します。(...)

-R または --RAW-CONTROL-CHARS

に似て-rいますが、ANSI「色」エスケープシーケンスのみが「未加工」形式で出力されます。(...)


17
これは、表示する必要があるエスケープコードがファイル自体に含まれている場合に便利です。
ニトロディスト

1
以前はless -rについて知っていましたが、「/」を使用してファイルを検索すると、間違った行が表示されていました。-Rはより良い仕事をしているようです。ヒントをありがとう。
アモスシャピラ

54
ほとんどのプログラムは、isatty(2)syscallを使用して標準出力が端末かどうかを確認し、そうでない場合は通常、色付き出力を無効にすることに注意してください。少ないパイプの場合isattyは0を返します。これが機能するかどうかを確認するには、echo -e '\x1b[32;1mtest\x1b[m' | less -r
mic_e

11
この答えは、実際に何かをテストする場合には優れていません。
マイケルウルフ

18
これを実現するために、-Rすでに開いlessているときに入力することもできます。
Scz

138

私は別の投稿で答えを得ました:Less and Grep:パイプを使用してgrepからlessへの結果を色付けする

単純に実行するgrep --colorgrep --color=auto、出力が端末かどうかを検出し、そうであれば色を有効にします。ただし、パイプを検出すると、カラーリングが無効になります。次のコマンド:

grep --color=always "search string" * | less -R

常に色付けを有効にし、自動検出を無効にし、色の強調表示をより少なくします。

警告:--color=alwaysエイリアスとして入れないでください。時々壊れます。それが--color=auto選択肢がある理由です。


6
よかった、ありがとう。ただし-R、のオプションとして使用する必要がある場合を除きlessます。
-naught101

10
grep -R再帰検索を指定するためだと思います。色を正しく吐き出すless -Rためlessに必要です。grep --color=always [grep cmds] | less -ROS X 10.7.3で動作します!
スティーブンルー

@ naught101 @Steven Lu編集済みですが、一部の人は使用する必要がないようですless -R(とにかく元の投稿の著者によると)。
jtpereyda

2
とにかくgrepに-Rコマンドをパイプで送らないで、それから色付けをするだけですか?そのため、-color = alwaysを常に-R未満にする必要はありません。
A-letubby

1
これは、最も単純な作業の答えです。ありがとう!
ダニーステープル

37

view代わりに使用しますlessvim読み取り専用モードでファイルを開きます。

それは実質的に色付きlessです:あなたが/(以上)で検索できるページャーです。唯一の欠点は、終了することはできませんqが、必要なことです:q

また、vim(実際にを使用しているためvim)と同じカラーリングを取得します。


大きなファイルのパフォーマンスはどうですか?Vim構文の強調表示は、巨大なファイルでは遅いことがわかっています。
pihentagy 14

'big'の値が何であるかわかりませんが、〜10000行のファイルを開くのは瞬時で、内部の検索も含まれます。
リッカルドガリ14

1
私は賛成しました(私は知りませんでしたview)が、もう1つの欠点は、カーソルがあるためj / k / up / downがすぐにスクロールしないことです。
タイラーコリアー

7
view -パイピング時に追加する必要がある場合があることに注意してください
user45909

6
vimは完全なファイルをメモリにロードするエディターlessですが、ページャーはファイルを部分的にのみメモリにロードします。巨大なファイルとの違いを知っているでしょう。
sjas

16

色を表示することを少なくするには、-Rで呼び出します。

less -R

残念ながら、一部のプログラムは、stdoutが端末ではないことを検出し、色を無効にします-たとえば、pacman(Arch Linuxパッケージマネージャー)。

これらの場合、使用することが可能unbufferです:

unbuffer <command> | less -R

pacmanを使用した例

unbuffer pacman -Ss firefox | less -R

unbufferコマンドは、通常、パッケージの一部であるexpect(アーチのLinux、Debianの/ Ubuntuの)またはexpect-dev(Debianの/ Ubuntuののレガシーバージョン)。

完全性の質問に答えるには:

他の人がすでに答えたように、pygmentizeソースコードの色付けに最適です。必要ありませんunbuffer。最も簡単な呼び出し:

pygmentize someSource.cpp | less -R

2
unbufferUbuntuで使用するにはsudo apt install expect
18

この答えにはさらに投票が必要です。
トーマスディグナン

起動エラーをチェックするためにdmesg出力をパイプしようとしましたが、unbufferを使用しないと色が機能しませんでしたunbuffer dmesg | less -R
pbhj

15

pygmentize-g使用するレクサーを自動的に推測するオプションをサポートします。これはSTDIN、拡張子タイプをチェックせずにファイルを読み取る場合に便利です。

これを使用すると、.bashrc追加のスクリプトなしで、次の2つのエクスポートを設定するだけで済みます。

export LESS='-R'
export LESSOPEN='|pygmentize -g %s'

4
簡潔で効果的。エイリアスを定義することを好みます。それは、少ないほうが良い場合があるためです。エイリアス:lesc = 'LESS = "-R" LESSOPEN = "| pygmentize -g%s" less'
Tiago 14

9

あなたはこの色が何を意味するべきか、例えばテキストファイルの色は何であるべきかを言わなかったのですか?

必要なのがソースコードの構文強調表示である場合、ソースコード強調表示が必要です。私は時々このようなpygmentizeを使用します

pygmentize file.cpp | less

または

pygmentize file.cpp | more

周りに他の蛍光ペンがあります。

これは非常に高速です。起動してもかまわない場合vimは、読み取り専用モードがあり、構文がある場合に構文を強調表示できますvim

view file.cpp

または、チャーンドの答えを参照してください。


5

これは、もう1つのピグメントベースの回答であり、いくつかの主要な改善点があります。

  • 壊れlesspipeたり、lessfileフィルターをかけたりしない
  • への複数の入力で動作します less
  • shebangヘッダーからスクリプトタイプを正しく解析します
  • Pygmentsがlexableするすべての434ファイルタイプに対応
  • カラースキームは環境変数としてパラメーター化されます

PygmentsとGawkをインストールする

sudo apt-get install python-pygments python3-pygments gawk

環境変数を設定する

かどうかをチェックしlesspipeたりlessfile、すでに有効になっています。

echo $LESSOPEN

そこで参照されているプログラムlesspipeが表示されない場合は、それがインストールされていることを確認してください(ほとんどのディストリビューションに付属しています)。

以下を追加します~/.bashrc

# sets LESSOPEN and LESSCLOSE variables
eval "$(SHELL=/bin/sh lesspipe)"

# interpret color characters
export LESS='-R'

# to list available styles: `pygmentize -L styles`
export PYGMENTIZE_STYLE='paraiso-dark'

# optional
alias ls='ls --color=always'
alias grep='grep --color=always'

必要ない場合はlesspipeevalステートメントを次のように置き換えます。

export LESSOPEN='|~/.lessfilter %s'

作成する ~/.lessfilter

次のコードを追加して、ファイルを実行可能にします。 chmod u+x ~/.lessfilter

#!/bin/bash
for path in "$@"; do
    # match by known filenames
    filename=$(basename "$path")
    case "$filename" in
        .bashrc|bash.bashrc|.bash_aliases|.bash_environment|.bash_profile|\
        .bash_login|.bash_logout|.profile|.zshrc|.zprofile|.zshrc|.zlogin|\
        .zlogout|zshrc|zprofile|zshrc|zlogin|zlogout|.cshrc|.cshdirs|\
        csh.cshrc|csh.login|csh.logout|.tcshrc|.kshrc|ksh.kshrc)
            # shell lexer
            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE -l sh "$path"
            ;;
        .htaccess|apache.conf|apache2.conf|Dockerfile|Kconfig|external.in*|\
        standard-modules.in|nginx.conf|pacman.conf|squid.conf|termcap|\
        termcap.src|terminfo|terminfo.src|control|sources.list|CMakeLists.txt|\
        Makefile|makefile|Makefile.*|GNUmakefile|SConstruct|SConscript|\
        .Rhistory|.Rprofile|.Renviron|Rakefile|Gemfile|PKGBUILD|autohandler|\
        dhandler|autodelegate|.vimrc|.exrc|.gvimrc|vimrc|exrc|gvimrc|todo.txt)
            # filename recognized
            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE "$path"
            ;;
        *)
            ext=$([[ "$filename" = *.* ]] && echo ".${filename##*.}" || echo '')
            case "$ext" in
                .as|.mxml|.bc|.g|.gd|.gi|.gap|.nb|.cdf|.nbp|.ma|.mu|.at|.run|\
                .apl|.adl|.adls|.adlf|.adlx|.cadl|.odin|.c-objdump|.s|\
                .cpp-objdump|.c++-objdump|.cxx-objdump|.d-objdump|.S|.hsail|\
                .ll|.asm|.ASM|.objdump-intel|.objdump|.tasm|.au3|.ahk|.ahkl|\
                .bb|.decls|.bmx|.bas|.monkey|.BAS|.bst|.bib|.abap|.ABAP|.cbl|\
                .CBL|.cob|.COB|.cpy|.CPY|.gdc|.maql|.p|.cls|.c|.h|.idc|.cpp|\
                .hpp|.c++|.h++|.cc|.hh|.cxx|.hxx|.C|.H|.cp|.CPP|.ino|.clay|\
                .cu|.cuh|.ec|.eh|.mq4|.mq5|.mqh|.nc|.pike|.pmod|.swg|.i|.vala|\
                .vapi|.capnp|.chpl|.icl|.dcl|.cf|.docker|.ini|.cfg|.inf|\
                .pc|.properties|.reg|.tf|.pypylog|.cr|.csd|.orc|.sco|.css|\
                .less|.sass|.scss|.croc|.d|.di|.smali|.jsonld|.json|.yaml|\
                .yml|.dpatch|.darcspatch|.diff|.patch|.wdiff|.boo|.aspx|.asax|\
                .ascx|.ashx|.asmx|.axd|.cs|.fs|.fsi|.n|.vb|.als|.bro|.crmsh|\
                .pcmk|.msc|.pan|.proto|.pp|.rsl|.sbl|.thrift|.rpf|\
                .dylan-console|.dylan|.dyl|.intr|.lid|.hdp|.ecl|.e|.elm|.ex|\
                .exs|.erl|.hrl|.es|.escript|.erl-sh|.aheui|.befunge|.bf|.b|\
                .camkes|.idl4|.cdl|.cw|.factor|.fan|.flx|.flxh|.frt|.f|.F|\
                .f03|.f90|.F03|.F90|.PRG|.prg|.go|.abnf|.bnf|.jsgf|.cyp|\
                .cypher|.asy|.vert|.frag|.geo|.plot|.plt|.ps|.eps|.pov|.inc|\
                .agda|.cry|.hs|.idr|.kk|.kki|.lagda|.lcry|.lhs|.lidr|.hx|\
                .hxsl|.hxml|.sv|.svh|.v|.vhdl|.vhd|.dtd|.haml|.html|.htm|\
                .xhtml|.xslt|.pug|.jade|.scaml|.xml|.xsl|.rss|.xsd|.wsdl|\
                .wsf|.xpl|.pro|.ipf|.nsi|.nsh|.spec|.i6t|.ni|.i7x|.t|.io|\
                .ijs|.coffee|.dart|.eg|.js|.jsm|.juttle|.kal|.lasso|\
                .lasso[89]|.ls|.mask|.j|.ts|.tsx|.jl|.aj|.ceylon|.clj|\
                .cljs|.golo|.gs|.gsx|.gsp|.vark|.gst|.groovy|.gradle|.ik|\
                .java|.kt|.pig|.scala|.xtend|.cpsa|.cl|.lisp|.el|.hy|.lsp|.nl|\
                .kif|.rkt|.rktd|.rktl|.scm|.ss|.shen|.xtm|.cmake|.mak|.mk|\
                .[1234567]|.man|.md|.css.in|.js.in|.xul.in|.rst|.rest|.tex|\
                .aux|.toc|.m|.sci|.sce|.tst|.ml|.mli|.mll|.mly|.opa|.sml|.sig|\
                .fun|.bug|.jag|.mo|.stan|.def|.mod|.mt|.ncl|.nim|.nimrod|.nit|\
                .nix|.cps|.x|.xi|.xm|.xmi|.mm|.swift|.ooc|.psi|.psl|.G|.ebnf|\
                .rl|.treetop|.tt|.adb|.ads|.ada|.pas|.dpr|.pwn|.sp|.pl|.pm|\
                .nqp|.p6|.6pl|.p6l|.pl6|.6pm|.p6m|.pm6|.php|.php[345]|.zep|\
                .praat|.proc|.psc|.lgt|.logtalk|.prolog|.pyx|.pxd|.pxi|.dg|\
                .py3tb|.py|.pyw|.sc|.tac|.sage|.pytb|.qvto|.Rout|.Rd|.R|.rq|\
                .sparql|.ttl|.r|.r3|.reb|.red|.reds|.txt|.rnc|.graph|\
                .instances|.robot|.fy|.fancypack|.rb|.rbw|.rake|.gemspec|\
                .rbx|.duby|.rs|.rs.in|.SAS|.sas|.applescript|.chai|.ezt|\
                .mac|.hyb|.jcl|.lsl|.lua|.wlua|.moo|.moon|.rexx|.rex|.rx|\
                .arexx|.sh|.ksh|.bash|.ebuild|.eclass|.exheres-0|.exlib|.zsh|\
                .sh-session|.shell-session|.bat|.cmd|.fish|.load|.ps1|.psm1|\
                .tcsh|.csh|.ns2|.st|.smv|.snobol|.rql|.sql|.sqlite3-console|\
                .do|.ado|.scd|.tcl|.rvt|.ng2|.tmpl|.spt|.cfc|.cfm|.cfml|\
                .evoque|.kid|.handlebars|.hbs|.phtml|.jsp|.liquid|.mao|.mhtml|\
                .mc|.mi|.myt|.rhtml|.tpl|.ssp|.tea|.twig|.vm|.fhtml|.sls|\
                .feature|.tap|.awk|.vim|.pot|.po|.weechatlog|.todotxt|.thy|\
                .lean|.rts|.u|.vcl|.bpl|.sil|.vpr|.cirru|.duel|.jbst|.qml|\
                .qbs|.slim|.xqy|.xquery|.xq|.xql|.xqm|.whiley|.x10)
                    # extension recognized
                    pygmentize -f 256 -O style=$PYGMENTIZE_STYLE "$path"
                    ;;
                *)
                    # parse the shebang script header if it exists
                    lexer=$(head -n 1 "$path" |grep "^#\!" |awk -F" " \
'match($1, /\/(\w*)$/, a) {if (a[1]!="env") {print a[1]} else {print $2}}')
                    case "$lexer" in
                        node|nodejs)
                            # workaround for lack of Node.js lexer alias
                            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE \
                                -l js "$path"
                            ;;
                        "")
                            exit 1
                            ;;
                        *)
                            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE \
                                -l $lexer "$path"
                            ;;
                    esac
                    ;;
            esac
            ;;
    esac
done
exit 0

このアプローチの欠点の1つは、PygmentsがPythonプログラムであるため、シェルセッションで最初に使用するときに「コールドスタート」遅延が発生することです。後続の呼び出しははるかに高速です。
ジョーコーダー

いいね!本当に包括的な。
ダリオSeidl

4

GNU Source-highlightを使用します。あなたがそれをインストールすることができますaptあなたはそれを持っている場合、またはそれ以外のソースからインストールしてください。次に、lessを設定するためのSource-highlighのドキュメントの助けを借りて、lessの「入力プリプロセッサ」を設定します

これは、コンスタンティンセレブリアンによって提案されました。スクリプトsrc-hilite-lesspipe.shは、source-highlightとともにインストールされます。次の環境変数を使用できます。

 export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
 export LESS=' -R '

このように、lessを使用してファイルを参照すると、source-highlightによって処理されるソースファイルである場合、自動的に強調表示されます。

Xavier-Emmanuel Vincentは最近、ANSIカラースキームの代替バージョンであるesc256.styleを提供しました。一部の端末は256色を処理できます。Xavierは、端末が処理できる色数をチェックするスクリプトも提供し、場合によっては256バリアントを使用します。スクリプトはsource-highlight-esc.shと呼ばれ、他のバイナリと一緒にインストールされます。


3

別の答えを拡張するには、拡張子を持たないすべてのスクリプトではないにしても、ほとんどの場合、.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"
        ;;
    *)
        scriptExec=$(head -1 "$1" |grep "^#\!" |awk -F" " '{print $1}')
        scriptExecStatus=$?
        if [ "$scriptExecStatus" -eq "0" ]; then
            lexer=$(echo $scriptExec |awk -F/ '{print $NF}')
            pygmentize -f 256 -l $lexer "$1"
        else
            exit 1
        fi
esac

exit 0

それでも、2つの変数を.bashrcに追加する必要があります。

export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'

そして、あなたはまだ.lessfilterを実行可能にする必要があります:

$ chmod 700 ~/.lessfilter

また、debianではpygmentsパッケージはpython-pygmentsと呼ばれることを追加したいと思いました。「ピグメント」としての「ピグメント」の明らかなつづりの間違いは、パッケージマネージャーによって「python-」が前に付けられている可能性があるというヒントを十分に得られなかったため、最初は見つけられませんでした。


2
2コメント:1)改善してくれてありがとう。2)「投票されたベストアンサー」のようなフレーズは素晴らしいものではありません。それは、これがその答えよりも優れている場合、実際には(変更される可能性があり、この。ポストはそれだけで混乱することがありますその時点でトップの答え、になるかもしれない多分ちょうどまたは「captaincomicの答え」「別の回答時に展開する」と言います?
cpast

2

およびのmost代替色であるユーティリティの使用を検討できます。lessmore


一例を挙げていただけますか?ここで試しましたが、出力は白黒でした。
ダニロ

入力には色が含まれている必要があります。まずcolorisedサンプル(例えば生成ccze -A </var/log/dpkg.logls -1 --color /var/log)、パイプ、それまでにmostls -1 --color /var/log | most
オンリージョブ

はい、私が使用:git status | less --colorgit status | most --color
ダニーロを

私はほとんど、より多く、より少なく使用し、すべてのツールは白黒を表示します
danilo

パイピングなどを行う前に、コマンドが色を生成することを確認してくださいless。端末エミュレータが色を出力できることを確認してください。TERM環境変数を確認してください。詳細については、unix.stackexchange.com / questions / 148 /…をご覧ください。可能な場合は、Debianのような最新のGNU + Linuxディストリビューションを使用してください。検索エンジン(duckduckgo.com startpage.comなど)を使用して回答を見つけます。コメントは議論用ではないことに注意してください。
オンリージョブ

2

より少ない経験を改善することについての私の完全なブログ投稿から凝縮:https : //www.topbug.ne​​t/blog/2016/09/27/make-gnu-less-more-powerful/

カラフルなマンページの場合は、.bashrcまたはに次を追加します.zshrc

export LESS_TERMCAP_mb=$'\E[1;31m'     # begin bold
export LESS_TERMCAP_md=$'\E[1;36m'     # begin blink
export LESS_TERMCAP_me=$'\E[0m'        # reset bold/blink
export LESS_TERMCAP_so=$'\E[01;44;33m' # begin reverse video
export LESS_TERMCAP_se=$'\E[0m'        # reset reverse video
export LESS_TERMCAP_us=$'\E[1;32m'     # begin underline
export LESS_TERMCAP_ue=$'\E[0m'        # reset underline

構文の強調表示についてlesspipe.shは、独自に作成する代わりに既存の強力なものを使用して処理します:https : //github.com/wofr06/lesspipe


1

このシンプルでエレガントなソリューションを見つけました。ほとんどのマシンにはデフォルトで既にあるので、余分なものをインストールする必要はありません。vimほとんどのマシンにデフォルトでインストールされ、それが実行するマクロが含まvimようにless

使用するオプションのいくつかは、エイリアスを作成することです。 alias vless='vim -u /usr/share/vim/vim74/macros/less.vim'

または、シンボリックリンクを作成します。 ln -s /usr/share/vim/vim74/macros/less.sh ~/bin/vless

その後、あなたはただ走る vless myfile.py

ここにほとんどの情報があります


1
私が持っているalias lesser='/usr/share/vim/vim80/macros/less.sh'中で~/bash_aliases(Ubuntuの18.04で)。そのような今後fとショートカットを使用することができ、Bの後方、D半分ダウン、uが半分まで、qは、終了等...
ダニエル

0

私にとって最も直感的で簡単なソリューションはpygmentize
、以下の行を.bashrcに追加して使用することでした

export LESS='-R'
export LESSOPEN='|pygmentize -g %s'

を呼び出せなかった場合は、次のpygmentizeようにインストールしてください

pip install pygments

追伸 pygmentize実行可能なバイナリはに座るだろう/usr/local/bin/か、あなたには/home/username/.virtualenv/venvname/bin/どこか。


-2

これらはどれもすぐに使えるものではなく、この作業を簡単に行える方法を見つけたので、共有したいと思いました。

tmuxを使用するだけです。tmuxを使用すると、より大きな履歴にアクセスしてスクロールし、色を完全に保持できます。


1
tmuxは1つの画面から複数の端末を許可しませんか?lessの色の表示をどのように変更しますか?
Xen2050

@ Xen2050この答えはスクロールモード(Ctrl-b + [)の入力方法を説明していませんが、きちんとした回避策だと思います
siikamiika

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.