vim에서 구문 강조를 설정할 수 있도록(또는 추가 도구가 필요하지 않도록) vim에서 이 작업을 수행하기를 원합니다. 따라서 사용하려면 를 cat file | <some_sh_tool>
사용합니다 vim +"some_opts" +"..." +q file
. 문제는 vim이 종료 시 이전 화면을 복원하지만 발생하지 않는 일부 원격 액세스 도구를 사용하므로 기본적으로 구문 강조 기능이 있는 cat처럼 작동한다는 것입니다.
그렇다면 이것이 가능합니까?
편집하다
더 생각해보면 참 대단한 일이라는 생각이 듭니다. 구문 강조 외에도 줄 번호, 공백, 개행 등과 같은 파일 내용을 표시할 때 vim의 다른 기능을 사용할 수 있습니다. 특히 스크립트에서는 vim이 어디에나 있기 때문에 더욱 그렇습니다.
답변1
이 터미널에 대한 대체 화면을 활성화하는 코드를 빈 문자열로 지정하여 대체 화면을 비활성화할 수 있습니다. 예:
vim --cmd 'set t_ti= t_te=' ...
하지만 더 많은 것이 필요하다는 것을 알게 될 것입니다. 노력하다:
vim --cmd 'set t_ti= t_te=' +redraw +q file
시작으로.
답변2
나는 다음과 같은 패키지에서 필요한 것을 찾았습니다.윔포그.
vimcat 유틸리티와 함께 제공됩니다.
답변3
한 번 살펴보고 싶을 수도 있습니다enscript
- 여러 언어에 대한 구문 강조 스타일이 있고 필터로 사용하도록 설계되었으며 출력은 ANSI 이스케이프 형식 시퀀스로 제한되지 않습니다. PostScript, HTML 또는 RTF도 출력할 수 있습니다.
답변4
나에게 맞는 것을 찾았습니다.
모든 vim 설정을 사용하여 "file.py" 파일의 내용을 STDOUT으로 인쇄하고 싶다고 가정해 보겠습니다. 나는 다음과 같이 쓸 수 있습니다 :
vim --not-a-term -T ansi +silent\ %print +redraw +quit file.py
짧지는 않지만 효과적입니다. "less"를 통해 파이프하려면 다음 과 함께 -R
스위치를 사용하는 것이 좋습니다 less
.
vim --not-a-term -T ansi +silent\ %print +redraw +quit file.py | less -R
(텍스트의 간격이 이상하면 터미널 크기를 조정해야 할 수도 있습니다.)
추가 설정/명령을 추가하려면 -T ansi
및 +silent\ %print
매개변수 사이에 추가하세요. 예를 들어 를 실행하려면 :set list
다음과 같이 하십시오.
vim --not-a-term -T ansi +set\ list +silent\ %print +redraw +quit file.py
또는:
vim --not-a-term -T ansi "+set list" +silent\ %print +redraw +quit file.py
("set list"에는 공백이 포함되어 있으므로 공백을 이스케이프 처리하거나 "+set list" 명령을 따옴표로 묶어야 합니다.)