파일에서 구문 강조를 표시하려면 어떻게해야합니까?


42

cat소스 파일에서 사용될 때 구문 강조된 코드 라인을 출력 하는 변형이 있습니까?

아이디어 : 어쩌면 vi[m]또는 다른 편집기에서 해당 파일의 구문 강조 표시된 내용을 덤프하고 stdout즉시 종료 하도록 요청할 수 있습니까?

답변:


48

파일을 전달하면 파일 이름에서 유형을 감지하여 적절하게 강조 표시합니다.pygmentize-f terminal


로고에 Star Trek : Deep Space Nine 글꼴이 있습니까? 그것이 굉장합니다.
amphetamachine

2
python-pygments데비안 에서 패키지로 제공됩니다 .
enzotib

6
내가 찾은 alias pcat="pygmentize -f terminal256 -O style=native -g"멋진 솔루션으로
미카엘 오멘를

1
를 통해도 가능합니다pip install pygments
craigb

1
실제로이어야합니다 cat code.extension | pygmentize -f terminal -l extension.
fiatjaf

13

소스 - 하이라이트 패키지는 어떤 ANSI 이스케이프 시퀀스와 하이라이트 esc.outlang 출력 언어 정의, 함께 제공됩니다.

편리한 래퍼 src-hilite-lesspipe.sh도 패키지에 포함되어 있으므로 터미널에서 강조 표시된 출력을 표시하는 것은 단지 src-hilite-lesspipe.sh source.file입니다.

실제로 가장 src-hilite-lesspipe.sh중요한 이유는 source-highlightwith 의 사용을 자동화하는 것입니다 less. 당신은 방금 설정했습니다 :

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

그러면 less source.file강조 표시된 소스 코드가 표시됩니다. (알 수없는 언어로 된 코드는 변경되지 않은 상태로 전달됩니다.와 같이 리디렉션 된 콘텐츠의 경우 강조 표시도 건너 뜁니다 less < source.file.)


니스,이 답변을 쓸 시간을 내 주셔서 감사합니다
Paolo

3

하이라이트 는 사용하기 쉽고 빠릅니다.pygmentize


2
그냥 사용하는 것을 잊지 마세요 -O ansi달리 : pygmentize, highlight기본적으로 출력 HTML을.
Ruslan

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