less
或more
读取文件时,如何获取彩色内容?#1 楼
(2020年更新)更快的方法是使用
less -R
参考。 https://superuser.com/a/117842/34893 您可以使用pygmentize的功能更少-自动! (无需手动管道。)
用软件包管理器或pip(可能称为
pygments
)安装python-pygments
或在此处获取它http://pygments.org/download/。写文件
~/.lessfilter
#!/bin/sh
case "" 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 "";;
.bashrc|.bash_aliases|.bash_environment)
pygmentize -f 256 -l sh "";;
*)
if grep -q "#\!/bin/bash" "" 2> /dev/null; then
pygmentize -f 256 -l sh ""
else
exit 1
fi
esac
exit 0
在您的
.bashrc
中添加export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'
此外,您还需要通过运行
chmod u+x ~/.lessfilter
使~/.lessfilter
可执行在Debian上进行了测试。
您明白了。当然,这可以进一步改善,接受更多扩展或解析shebang来代替bash来用于其他解释器。请参阅其他答案。
这个想法来自Pygments制造商的一篇旧博客帖子,但原来的帖子不再存在。
评论
如果要对源代码文件进行着色,还需要通过运行chmod u + x〜/ .lessfilter使〜/ .lessfilter可执行。您还需要安装pygmentize(pygments.org/download)。
–谢尔盖·别洛佐洛夫(Sergiy Belozorov)
2012-12-18 11:07
@puk您可以执行ls --color = always -l |少-R。显然要键入很多,但是您可以将其别名为ll。那就是如果您不想使用任何额外的库。
– PhilT
2014年7月23日在16:17
在答案中添加了@SergiyByelozyorov的评论。
– andrybak
15年1月18日在12:54
我的编辑被拒绝了,所以我想我将其发布为注释:不要间接测试命令的退出代码。如果使用grep -q“#\!/ bin / bash”“ $ 1”(-q禁止标准输出),则可以使用。您可能需要使用2> / dev / null重定向标准错误。
– Tom Fenech
2015年10月23日下午13:16
要获取当前安装的pygmentize版本支持的所有唯一文件扩展名的列表,并以适合于粘贴到此.lessfilter脚本中的格式,请运行pygmentize -L |。 grep -o“(文件名。*)” | sed -E“ s,\(文件名(。*)\),\ 1,gm; s /,/ \ n / g” |排序-u | tr“ \ n”“ |”。请注意,在某些Linux上,可能不需要设置LESSOPEN,因为已经设置为使用lesspipe来检测.lessfilter文件(运行echo $ LESSOPEN进行检查)。
–巴特
19年5月17日在9:38
#2 楼
请尝试以下操作:less -R
来自
man less
:-r
或--raw-control-chars
导致“原始显示的控制字符。 (...)
-R
或--RAW-CONTROL-CHARS
与
-r
一样,但仅ANSI“颜色”转义序列以“原始”形式输出。 (...)评论
当文件本身包含需要显示的转义码时,此功能很有用。
– Nitrodist
2011年12月16日21:16
应当注意,大多数程序使用isatty(2)syscall来检查其标准输出是否为终端,如果不是,则通常禁用彩色输出。对于小于此值的任何管道,isatty将返回0。要检查是否有效,请尝试echo -e'\ x1b [32; 1mtest \ x1b [m'|少-r
–mic_e
13年9月24日在22:53
这个答案在实际的测试中并不出色。
–迈克尔·沃尔夫(Michael Wolf)
2014年5月9日22:24
您也可以在很少打开的情况下键入-R来实现此目的。
– Scz
16年9月1日在7:56
仅当我在grep中包括--color = always选项时,此方法才对grep起作用:grep --color = always foo myfile.txt |少-R
–丹妮德
19年1月14日在17:31
#3 楼
我在另一篇文章中得到了答案:Less and Grep:使用从grep到less的管道时获得彩色结果当您简单地运行
grep --color
时,它意味着
grep --color=auto
,其中检测输出是否为
端子,如果是,则启用颜色。
但是,当它检测到管道时,它会禁用着色。以下
命令:
grep --color=always "search string" * | less -R
将始终启用着色并
覆盖自动检测,并且
您将获得颜色突出显示在
少。
警告:请勿将
--color=always
用作别名,它有时会破坏事情。这就是为什么有--color=auto
选项的原因。评论
很好,谢谢。除了我还需要使用-R作为更少选项。
–naught101
2012年5月8日下午6:41
我相信grep -R是用于指定递归搜索的。较少的-R对于较少的正确吐出颜色所必需的。 grep --color = always [grep cmds] | less -R在OS X 10.7.3上对我有效!
–陆even
2012年5月9日13:56
无论如何,有什么要让grep知道的是较少管道的-R命令,然后才进行着色?因此,我们不必一直都放--color = always和-R。
–一个小教室
15年2月27日在7:50
这是迄今为止最简单的工作答案。谢谢!
–丹尼·史泰普(Danny Staple)
2015年10月3日,11:16
当您需要将git diff减少到更少时,这也适用。这样做:git diff |更少不会显示任何颜色。您需要改为执行以下操作:git diff --colors = always | less或git diff --colors = always some_file |减。 (顺便说一下,我在Windows 10上使用cygwin。)
– CSCH
18年8月27日在20:17
#4 楼
使用view
代替less
。它以只读模式打开带有vim
的文件。它实际上是一个彩色的
less
:您可以使用/(以及更多)进行搜索的寻呼机。唯一的缺点是您无法使用q退出,但需要:q
此外,您将获得与
vim
相同的颜色(因为您实际上使用的是vim
)。评论
大文件的性能如何? Vim语法高亮显示在大文件上速度很慢。
–精神病
2014年2月20日上午10:28
我赞成(我不了解视图),但是另一个缺点是j / k / up / down不会立即滚动,因为有光标。
–泰勒·科利尔(Tyler Collier)
2015年3月1日17:38
请注意,您可能需要在管道中添加视图
–user45909
2015年3月2日,0:54
vim是一个编辑器,它将整个文件加载到内存中,而寻呼机则更少,它仅将文件部分加载到内存中。您将了解大型文件的区别。
– sjas
16年7月20日在12:13
@RiccardoGalli-很酷的主意,但是我同意性能方面的关注,它不是瞬时的。当查看巨大的日志或混乱时,尤其是在线(SSH)时,速度更快,因为它不是通过“ inserts”逐行地将整个输出转储到vim中。另外,您可以使用'/'进行较少的搜索。另外,它具有使用shift-F的“ tail”模式,非常方便。
– dhaupin
16-9-29在17:49
#5 楼
为了少显示颜色,请使用-R调用它:less -R
不幸的是,某些程序检测到其stdout不是终端并禁用了颜色-例如pacman(Arch Linux软件包在这种情况下,可以使用
unbuffer
:unbuffer <command> | less -R
使用pacman的示例
unbuffer pacman -Ss firefox | less -R
unbuffer
命令通常是软件包expect
(Arch Linux,Debian / Ubuntu)或expect-dev
(Debian / Ubuntu的旧版本)的一部分。回答完整性问题:
正如其他人已经回答的那样,
pygmentize
非常适合为源代码着色。它不需要unbuffer
。最简单的呼叫:pygmentize someSource.cpp | less -R
评论
要在Ubuntu上使用unbuffer,sudo apt install Expect
– Wisbucky
18/12/4在18:37
这个答案需要更多的投票。
–托马斯·迪格南(Thomas Dignan)
19年4月19日在14:26
我试图通过管道dmesg输出来检查启动错误,但是除非我使用unbuffer,否则颜色将不起作用,这使我很困惑:unbuffer dmesg | less -R可以正常工作。
– pbhj
19年5月12日在9:49
在macOS brew安装上,期望会为您提供必要的unbuffer命令。
–luckman212
19-10-19在20:30
#6 楼
pygmentize
支持-g
选项,可以自动猜测要使用的词法分析器,这对于从STDIN
读取的文件很有用,而无需检查任何扩展名类型。,您只需在
.bashrc
中设置以下2个导出无需任何其他脚本:export LESS='-R'
export LESSOPEN='|pygmentize -g %s'
评论
简洁有效。我更喜欢定义别名,因为有时少一些更好。因此:alias lesc ='LESS =“-R” LESSOPEN =“ | pygmentize -g%s” less'
– Tiago
2014年4月28日在18:27
#7 楼
您没有说这种颜色的含义,例如文本文件的颜色应该是什么?如果要对源代码进行语法突出显示,则需要使用源代码突出显示。有时我会像这样使用pygmentize
pygmentize file.cpp | less
或
pygmentize file.cpp | more
周围还有其他荧光笔。
这非常快。如果您不介意启动
vim
,则有一个只读模式,如果您在vim
中使用它,则可以为您突出显示语法。view file.cpp
,或者查看churnd的回答。
#8 楼
这是另一个基于pygments的答案,具有以下主要改进:不会破坏
lesspipe
或lessfile
过滤器对
less
的多个输入起作用正确地解析了shebang标头中的脚本类型
可用于Pygments可分类的所有434种文件类型
配色方案被参数化为环境变量
安装Pygments和Gawk
sudo apt-get install python-pygments python3-pygments gawk
设置环境变量
检查是否已启用
lesspipe
或lessfile
: echo $LESSOPEN
如果在此处看不到任何引用的程序,请确保已安装
lesspipe
(大多数发行版随附)。在
~/.bashrc
中添加以下内容:< pre class =“ lang-sh prettyprint-override”>
# 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'
如果不想使用
lesspipe
,请用以下内容替换eval
语句: 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(, /\/(\w*)$/, a) {if (a[1]!="env") {print a[1]} else {print }}')
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
评论
真好!真的很全面。
–达里奥·塞德尔(Dario Seidl)
18年11月11日在16:01
TIL:如果在安装了上述.lessfilter的情况下出现“ awk:line 1:语法错误at or near”之类的错误,请检查是否已安装gawk。
–布莱斯
19-10-23在23:38
#9 楼
使用GNU Source-highlight;您可以使用apt
进行安装,也可以通过源代码进行安装。然后在Source-highligh的文档中帮助设置更少的“输入预处理器”:Konstantine Serebriany建议。脚本src-hilite-lesspipe.sh将与source-highlight一起安装。您可以使用以下环境变量:
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
这样,当您较少使用文件时,如果它是源文件
Xavier-Emmanuel Vincent最近提供了ANSI配色方案esc256.style的替代版本:某些终端可以处理256种颜色。 Xavier还提供了一个脚本,用于检查终端可以处理多少种颜色,以及是否使用256种颜色。该脚本称为source-highlight-esc.sh,它将与其他二进制文件一起安装。
#10 楼
要扩展另一个答案,只需更改一下.lessfilter文件,就可以使它在大多数没有扩展名的脚本中都可以使用:#!/bin/sh
case "" 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 "";;
.bashrc|.bash_aliases|.bash_environment)
pygmentize -f 256 -l sh ""
;;
*)
scriptExec=$(head -1 "" |grep "^#\!" |awk -F" " '{print }')
scriptExecStatus=$?
if [ "$scriptExecStatus" -eq "0" ]; then
lexer=$(echo $scriptExec |awk -F/ '{print $NF}')
pygmentize -f 256 -l $lexer ""
else
exit 1
fi
esac
exit 0
您仍然需要将两个变量添加到.bashrc中:
export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'
您仍然需要使.lessfilter可执行文件:
$ chmod 700 ~/.lessfilter
我还想补充一点,在debian下pygments包称为python-pygments。起初我很难找到它,因为“色素”作为“色素”的明显拼写错误不足以向我暗示它是一个软件包管理器可能以“ python-”为前缀的软件包。 >
评论
2条评论:1)感谢您的改进。 2)像“投票的最佳答案”这样的短语不是很好;可能会改变(实际上,如果这比那个答案要好,这篇文章可能会成为头等答案,这时它会令人困惑。也许只是说“扩展到另一个答案”或“ captaincomic的答案”?
–cpast
13年2月27日在23:07
#11 楼
浓缩于我的有关减少经验的完整博客文章:https://www.topbug.net/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 #12 楼
您可以考虑使用most
实用程序,它是less
和more
的颜色友好替代品。评论
能给我们举个例子吗?我在这里尝试过,输出是黑白的。
– danilo
19年6月13日在17:47
您的输入应包含颜色。首先生成一个彩色样本(例如ccze -A
–́Onlyjob
19年6月15日,0:06
是的,我用过:git status |少--color,git状态|最-颜色
– danilo
19年6月15日在0:14
我使用了更多,更少,所有工具都显示为黑白
– danilo
19年6月15日在0:17
在传递到less或其他管道之前,请确保命令产生颜色。确保您的终端仿真器可以输出颜色。检查TERM环境变量。在unix.stackexchange.com/questions/148/中了解更多。...尽可能使用Debian之类的现代GNU + Linux发行版。使用搜索引擎(例如duckduckgo.com startpage.com)查找答案。请记住,评论不用于讨论。
–́Onlyjob
19年6月16日在5:06
#13 楼
我找到了这个简单而优雅的解决方案。您不必安装其他任何东西,因为大多数计算机上默认已经安装了任何东西。由于大多数计算机上默认安装了vim
,因此它包含一个可运行vim
的宏,例如less
使用它的一些选项是创建别名:
alias vless='vim -u /usr/share/vim/vim74/macros/less.vim'
< br或创建符号链接:
ln -s /usr/share/vim/vim74/macros/less.sh ~/bin/vless
然后您只需运行
vless myfile.py
我在这里获得了大多数信息
评论
我在〜/ bash_aliases(在Ubuntu 18.04中)中拥有别名lesser ='/ usr / share / vim / vim80 / macros / less.sh'。可以使用诸如f前进,b向后,d向下,u向上,q退出等快捷方式...
–丹尼尔(Daniel)
19年5月5日14:01
#14 楼
对我来说,最直观,最直接的解决方案是使用pygmentize
,方法是将以下行添加到.bashrc
export LESS='-R'
export LESSOPEN='|pygmentize -g %s'
,以防万一您无法调用
pygmentize
,就像pip install pygments
ps一样安装。
pygmentize
可执行二进制文件将位于/usr/local/bin/
或您的/home/username/.virtualenv/venvname/bin/
或某处。#15 楼
蝙蝠盒可以替代开/关少/多的颜色。您可以将其安装在大多数软件包管理器中,并将其用作传呼机和猫的替代品。https://github.com/sharkdp/bat
#16 楼
这些对我来说都不是开箱即用的,我想出了一种简单的方法来完成这项工作,所以我想我会分享。只使用tmux,它允许您访问和滚动更大的窗口历史并完美保留色彩。
评论
tmux不能在一个屏幕上允许多个终端吗,它如何减少较少的颜色显示?
– Xen2050
18-10-26在13:23
@ Xen2050我认为这是一个很好的解决方法,尽管此答案并未说明如何进入滚动模式(Ctrl-b + [)
– siikamiika
19年4月18日在18:30
#17 楼
只要输出文本具有颜色控制字符,less -R
就可以。评论
这是另一个答案(来自9年前)说的话。与其他答案重复的答案没有用。
–卡米尔·马乔洛夫斯基(Kamil Maciorowski)
19年7月15日在12:54
公平,但是该答案并未明确表明它仅适用于使用颜色控制字符构建的文件。
–莱昂纳多·雷尔(Leonardo Raele)
19年7月15日在13:13
评论
这似乎有关:superuser.com/questions/36022/less-and-grep-color-有帮助吗?这个问题的标题很容易引起误解。许多访问此页面的人都希望能找到一种解决问题的解决方案,当您将带有彩色输出的命令传递到更少的位置时,将会丢失颜色。 (对“管道问题”的回答涉及较少的-R,unbuffer等。)但实际的问题是指打开文件! —模糊性主要在于问题的标题,但除此之外,恕我直言,问题仍然太过广泛:“读取文件”可以引用任何文件(可能是纯文本)。 (嗯,“获取颜色内容”可能是指语法突出显示。)
我需要纠正自己,只有14个答案中的3个(或4个)缺少OP的实际问题:ChristopheD,Puneet和Onlyjob的答案;也许是jbbr。尽管如此,其中两个答案还是三个投票最高的答案的一部分。
@myrdd“语法高亮”是一个相关的术语……(它询问显示颜色,而不是添加颜色?)少-R也可以在文件上使用,例如ls --color = always> / tmp / file && less -R / tmp / file
@myrdd将问题以“不清楚所问的内容”来结束可能是最有意义的,因为询问两个问题中的任何一个都可能被标记为重复的问题...(并且两个问题中的任何一个都可能被否决。基于选民的解释方式...)(我的用例是一个日志文件,该日志文件(讨厌地)其中包含颜色转义代码)