`less` 또는`more`로 파일을 읽을 때 어떻게 내용을 컬러로 볼 수 있습니까?


415

나는 명령을 리눅스에서 파일을 읽을 때 less또는 more, 어떻게 색상의 콘텐츠를받을 수 있나요?


5
관련이있는 것 같습니다 : superuser.com/questions/36022/less-and-grep-color- 도움이 되나요?
Jonik

7
이 질문의 제목은 매우 오도됩니다. 이 페이지에 방문하는 많은 사람들 은 컬러 출력이있는 명령을 파이핑 할 때 발생하는 컬러링 문제에 대한 해결책을 기대합니다 less. (즉, "배관 문제"에 대한 답변을 포함 less -R, unbuffer등)하지만 실제 질문을 참조 파일을 여는 ! - 모호성은 주로 질문의 제목에 자리 잡고 있지만, 심지어 외에, 문제는 너무 광범위 여전히 이럴 : 참조 수있는 "파일이 읽기" 모든 파일 (아마도 일반 텍스트). (물론“색상으로 내용을 얻는다”는 구문 강조를 참조 할 것입니다.)
myrdd '

14 개의 답변 중 3 개 (또는 4 개) 만 OP의 실제 질문이 누락되었습니다. ChristopheD , PuneetOnlyjob 의 답변 ; 그리고 아마도 jbbr . 그럼에도 불구하고이 답변 중 2 개는 투표율이 가장 높은 3 가지 답변의 일부입니다.
myrdd

@myrdd "구문 강조 표시"는 관련 용어입니다 ... (색상을 추가하지 않고 색상을 표시하는 것에 대해 묻습니까?) less -R파일에서도 작동합니다.ls --color=always > /tmp/file && less -R /tmp/file
Gert van den Berg

1
@myrdd 두 가지 중 하나를 묻는 질문이 이것의 복제본으로 표시 될 수 있기 때문에 질문이 "무엇을 요청하고 있는지 불명확 한"것으로 닫히는 것이 가장 합리적 일 수 있습니다. 유권자가 그것을 ...) 해석하는 방법에 따라) 그 안에 색상 이스케이프 코드를 가지고 (내 사용 사례 (성가 시게 로그 파일 WAS)
게르트 반 덴 베르그

답변:


149

피그먼트의 힘을 덜 자동으로 활용할 수 있습니다! (손으로 배관 할 필요가 없습니다.)

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

데비안에서 테스트했습니다.

당신은 아이디어를 얻습니다. 이것은 bash가 아닌 다른 인터프리터를 위해 더 많은 확장을 수용하거나 shebang을 파싱하여 더 향상 될 수 있습니다. 이에 대한 다른 답변 중 일부를 참조하십시오.

이 아이디어는 Pygments 제조업체의 오래된 블로그 게시물에서 비롯 되었지만 더 이상 존재하지 않습니다.


6
소스 코드 파일을 채색하려면 ~를 실행하여 ~ / .lessfilter를 실행 가능하게 만들어야합니다 chmod u+x ~/.lessfilter. 또한 pygmentize ( pygments.org/download )가 설치되어 있어야합니다.
Sergiy Belozorov

누구든지 내가 다음과 같은 명령을 실행할 때 아무런 효과가 없기 때문에 이것이 작동하는지 확인할 수 있습니까?ls -l | less
puk

7
@puk 당신은 같은 것을 할 수 있습니다 ls --color=always -l | less -R. 분명히 입력해야 할 것이 많지만 다음과 같이 별칭을 지정할 수 ll있습니다. 추가 라이브러리를 사용하지 않으려는 경우입니다.
PhilT

2
@SergiyByelozyorov의 의견이 답변에 추가되었습니다.
andrybak

2
편집이 거부되었으므로 대신 주석으로 게시 할 것 같습니다. 명령의 종료 코드를 간접적으로 테스트하지 마십시오. 사용할 수 있습니다 if grep -q "#\!/bin/bash" "$1"( -q표준 출력 억제). 표준 오류를로 리디렉션 할 수 있습니다 2>/dev/null.
Tom Fenech

503

다음을 시도하십시오 :

less -R

부터 man less:

-r 또는 --raw-control-chars

"원시"제어 문자가 표시됩니다. (...)

-R 또는 --RAW-CONTROL-CHARS

마찬가지로 -r, "raw"형식으로 ANSI "color"이스케이프 시퀀스 만 출력됩니다. (...)


17
파일 자체에 표시해야 할 이스케이프 코드가 포함 된 경우에 유용합니다.
Nitrodist

1
나는 -r에 대해 덜 알고 있었지만 "/"를 사용하여 파일을 검색하면 잘못된 줄이 계속 나타납니다. -R은 더 나은 일을하는 것 같습니다. 팁 고마워.
Amos Shapira

54
대부분의 프로그램은 isatty(2)syscall을 사용하여 표준 출력이 터미널인지 확인하고 그렇지 않은 경우 일반적으로 컬러 출력을 비활성화합니다. 파이프를 isattyecho -e '\x1b[32;1mtest\x1b[m' | less -r
줄이려면

11
이 답변은 실제로 테스트를 수행하는 데 탁월합니다.
마이클 울프

18
이를 위해 -R이미 열었을 때 입력 할 수도 있습니다 less.
Scz

138

다른 게시물에서 답을 얻었습니다 : Less and Grep : grep에서 less로 파이프를 사용할 때 색상이 표시됩니다.

당신은 단순히 실행하면 grep --color그것이 의미하는 grep --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에서 작동합니다!
Steven Lu

@ naught101 @Steven Lu 일부 사용자는 less -R(원래 게시물의 작성자에 따라) 사용할 필요가없는 것 같습니다 .
jtpereyda

2
어쨌든 grep에게 pipe less -R 명령을 알리고 채색을 할 수 있습니까? 따라서 항상 --color = always와 -R을 적을 필요는 없습니다.
A-letubby

1
이것은 가장 간단한 작업 답변입니다. 감사!
Danny Staple

37

view대신에 사용하십시오 less. 파일을 vim읽기 전용 모드로 엽니 다 .

그것은 실제로 착색되어 있습니다 less: 당신이 /(및 그 이상으로) 검색 할 수있는 호출기 . 유일한 단점은 당신이 빠져 나올 수는 q없지만:q

또한 vim(실제로 사용하고 있기 때문에) 와 동일한 색상이 표시됩니다 vim.


큰 파일의 성능은 어떻습니까? Vim 구문 강조는 거대한 파일에서 느리다는 것을 알고 있습니다.
pihentagy

나는 'big'에 대한 귀하의 가치가 무엇인지 모르지만 ~ 10000 줄 파일을 여는 것은 즉각적이며 검색 내부에 포함됩니다.
Riccardo Galli

1
나는 upvoted했지만 (나는 몰랐다 view) 또 다른 단점은 커서가 있기 때문에 j / k / up / down이 즉시 스크롤되지 않는다는 것입니다.
Tyler Collier

7
view -배관시 추가해야 할 수도 있습니다.
user45909

6
vim전체 파일을 메모리에로드하는 편집기 인 반면 less, 호출기는 파일을 부분적으로 메모리에만 로드하는 편집기 입니다. 거대한 파일과의 차이점을 알게 될 것입니다.
sjas

16

색상을 표시하지 않으려면 -R로 호출하십시오.

less -R

불행히도 일부 프로그램은 stdout이 터미널이 아니라는 것을 감지하고 색상을 비활성화합니다 (예 : pacman (Arch Linux package manager)).

이 경우 다음을 사용할 수 있습니다 unbuffer.

unbuffer <command> | less -R

팩맨을 사용한 예제

unbuffer pacman -Ss firefox | less -R

unbuffer명령은 일반적으로 패키지 expect(Arch Linux, Debian / Ubuntu) 또는 expect-dev(레거시 버전의 Debian / Ubuntu)의 일부입니다.

완전성에 대한 질문에 대답하려면 :

다른 사람들이 이미 대답했듯이 pygmentize소스 코드를 채색하는 데 좋습니다. 필요하지 않습니다 unbuffer. 가장 쉬운 전화 :

pygmentize someSource.cpp | less -R

2
unbufferUbuntu에서 사용하기sudo apt install expect
wisbucky

이 답변에는 더 많은 투표가 필요합니다.
토마스 디냥

부팅 오류를 확인하기 위해 dmesg 출력을 파이프하려고했지만 unbuffer를 사용하지 않으면 색상이 작동하지 않았습니다 unbuffer dmesg | less -R.
pbhj

15

pygmentize-g사용되는 어휘 분석기를 자동으로 추측 할 수 있는 옵션을 지원하며, STDIN확장자 유형을 확인하지 않고 읽은 파일에 유용 합니다.

이를 사용하면 .bashrc추가 스크립트없이 다음 두 내보내기 만 설정하면됩니다 .

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

4
간결하고 효과적입니다. 별명을 정의하는 것이 더 좋습니다. 그래서 : 별명 lesc = 'LESS = "- R"LESSOPEN = "| pygmentize -g %의'덜 '
티아구

9

이 색의 의미를 말하지 않았습니다. 예를 들어 텍스트 파일의 색은 무엇입니까?

원하는 것이 소스 코드의 구문 강조 표시 인 경우 소스 코드 강조 표시기가 필요합니다. 때때로 이렇게 피그먼트를 사용 합니다

pygmentize file.cpp | less

또는

pygmentize file.cpp | more

주변에 다른 형광펜이 있습니다.

이것은 매우 빠릅니다. 실행을 신경 쓰지 않으면 vim에 읽기 전용 모드가있어 구문 강조 표시가 가능합니다 vim.

view file.cpp

또는 churnd의 답변을 참조하십시오.


5

이것은 또 다른 피그먼트 기반의 답변이며 몇 가지 주요 개선 사항이 있습니다.

  • 깨지 lesspipe거나 lessfile필터 하지 않습니다
  • 여러 입력으로 작동 less
  • shebang 헤더에서 스크립트 유형을 올바르게 구문 분석합니다
  • 피그먼트가 유연하게 처리 할 수있는 모든 434 파일 형식에 적용
  • 색 구성표는 환경 변수로 매개 변수화됩니다

피그먼트 및 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'

을 원하지 않으면 명령문을 다음으로 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($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

이 접근법에 대한 한 가지 단점은 피그먼트가 파이썬 프로그램이므로 쉘 세션 중에 처음 사용할 때 "콜드 스타트"지연이 있다는 것입니다. 후속 호출은 훨씬 빠릅니다.
Joe Coder

좋은! 정말 포괄적입니다.
Dario Seidl

4

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라고하며 다른 바이너리와 함께 설치됩니다.


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

여전히 두 변수를 .bashrc에 추가해야합니다.

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

그리고 여전히 .lessfilter를 실행 가능하게 만들어야합니다.

$ chmod 700 ~/.lessfilter

또한 데비안에서 피그먼트 패키지는 python-pygments라고 덧붙이고 싶습니다. "피그먼트"라는 "안료"의 철자가 틀 렸기 때문에 패키지 관리자가 "python-"이라는 접두사를 붙일 수 있다는 힌트가 충분하지 않았기 때문에 처음에는 위치를 찾는 데 문제가있었습니다.


2
2 의견 : 1) 개선 주셔서 감사합니다. 2) "투표 된 최선의 답변"과 같은 문구는 훌륭하지 않습니다. 변경 될 수 있습니다 (실제로이 답변보다 낫다면 게시물이 최고 답변이되어 혼란 스러울 수 있습니다. "다른 답변으로 확장"또는 "대장의 답변"이라고 말하면 되겠습니까?
cpast

2

및의 most색상 친화적 인 유틸리티 사용을 고려할 수 있습니다 .lessmore


하나의 예를 보여 주시겠습니까? 나는 여기에서 시험해 보았고 출력은 흑백이었다.
danilo

입력 한 색상이 있어야합니다. 먼저은 colorised 샘플 (예를 들어 제조 ccze -A </var/log/dpkg.log, ls -1 --color /var/log)를 파이프를 그것에 most: ls -1 --color /var/log | most.
Onlyjob

예, 사용했습니다 : git status | less --color,git status | most --color
danilo

가장 많이, 더 적게, 더 적게 사용했으며 모든 도구가 흑백으로 표시되었습니다.
danilo

다른 사람에게 배관하기 전에 명령이 색상 생성하는지 확인하십시오 less. 터미널 에뮬레이터에서 색상을 출력 할 수 있는지 확인하십시오. TERM환경 변수를 확인하십시오 . unix.stackexchange.com/questions/148/… 에서 자세히 읽어보십시오. 가능하면 데비안 과 같은 최신 GNU + Linux 배포판을 사용하십시오 . 검색 엔진 (예 : duckduckgo.com startpage.com )을 사용하여 답변을 찾으십시오. 의견은 토론을위한 것이 아님을 기억하십시오.
Onlyjob

2

경험 감소에 대한 전체 블로그 게시물에서 요약 된 내용은 다음과 같습니다. 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


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(우분투 18.04에서). f 앞으로, b 뒤로, d half down, u half up, q quit 등과 같은 단축키를 사용할 수 있습니다.
Daniel

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를 사용하면 더 큰 기록에 액세스하고 스크롤 할 수 있으며 색상을 완벽하게 보존 할 수 있습니다.


1
tmux가 한 화면에서 여러 터미널을 허용하지 않습니까? 색상 표시를 어떻게 덜 변경합니까?
Xen2050

@ Xen2050이 답변은 스크롤 모드를 시작하는 방법을 설명하지 않지만 (Ctrl-b + [)
siikamiika

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.