ANSI 이스케이프 시퀀스의 vim 및 색상 : cat 명령으로 표시되는 것과 동일한 색상을 vim에 표시하는 방법


8

다음은 내가하는 일입니다. Php 색상을 다음과 같이 에코합니다.

쉘 색상

php는 터미널의 쉘을 통해 텍스트를 표시 할 때 텍스트를 색칠하는 ANSI 이스케이프 시퀀스가 ​​포함 된 출력을 만듭니다. 여기 에서 PHP 클래스와 설명을 찾을 수 있습니다 .

그러나 출력물을 파일로 보내고 vim을 사용하여 읽으려고하면 "컬러"가 아닌 특수 문자 만 볼 수 있습니다. 쉘에 표시된 것과 같은 색상을 표시하는 방법이 있습니까?


텍스트가 컬러 인 파일을 작성하는 방법과 프로그램 및 나중에 표시하려는 방법을 언급 할 수 있다면 도움이 될 것입니다.
John S Gruber

내가 충분히 정확하지 않으면 죄송합니다. 내 질문을 인용하십시오 : 나는 Php를 통해 에코 하고 있습니다. 즉 " "그리고 나는이 클래스를 사용하여 반향을 일으킨다 : if-not-true-then-false.com/2010/…php -f filename
Olivier Pons

답변:


8

파일 내용이 수정없이 "있는 그대로"터미널로 전송되면 터미널 출력이 색상으로 표시됩니다. 그러나 vim 및 일부 다른 편집기는 텍스트에서 메타 문자를 이스케이프하고 대신 구문 강조 표시를 위해 다른 색상 코드를 추가하므로 작동하지 않습니다.

을 사용하여 파일을 터미널에 덤프하십시오 cat. 일부 간단한 편집자 또는 호출기 less도 작동 할 수 있습니다.

편집 : vim이 모든 이스케이프 코드를 "통과"할 수있는 방법을 찾지 못했지만이 vim 스크립트에 연결되는 이 답변 을찾았습니다. 코드는 이스케이프 코드를 구문 분석하고 vim 구문 강조 표시를 사용하여 색상 코드를 다시 작성합니다. 출력에서. 설명에 따르면 원하는대로 정확하게 수행해야하지만 테스트하지는 않았습니다.


정력이 할 수있는 방법이 있나요 (= 정확 하지 탈출)?
Olivier Pons

@OlivierPons는 내 편집 내용을 참조하십시오
Philipp Wendler

덜 작동하지 않았지만 더 많이 작동했습니다 : cat ~ / myfile.txt | 더
wranvaud

그 스크립트 종류의 작품. 그것은 vimball이므로 설치하고 어딘가에 압축하여 vim ': source ansi.vba'에 설치하십시오. 그것은 많은 탈출을 처리하지만 전부는 아닙니다. 또 다른 해결책은 'less -R filename'입니다.
matiu

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