vim 내부에서 외부 명령을 실행할 때 색상을 유지하려면 어떻게해야합니까?


12

예를 들어, 명령의 ls --color경우 쉘에서 실행될 때 화려한 결과가 표시됩니다. 그러나 :!ls --colorvim 내부에 전화 하면 모든 색상 정보가 사라집니다.

vim 내부에서 외부 명령을 호출 할 때 색상을 유지하려면 어떻게해야합니까?

편집 : 내 질문을 명확히하기 위해 , 이것은 VIM 자체 에 대한 질문입니다. 실제로 "ls"의 색상을 활성화하는 방법을 묻지는 않습니다 . 내가 알고 싶은 것은 일반적으로 모든 쉘 명령 의 화려한 결과를 표시하는 방법입니다 (다채로운 결과가있는 한).


2
여기서 잘 작동합니다.
이그나시오 바스케스-아 브람스

2
"이것은 VIM 자체에 대한 질문입니다."
Ignacio Vazquez-Abrams

2
그리고 vim은 "프로그래머가 일반적으로 사용하는 소프트웨어 도구"중 하나입니다.

1
이메일입니다. 반드시 "어떻게 썬더 버드 (Thunderbird)를 사용 하는가"라는 의미는 아닙니다.
이그나시오 바스케스-아 브람스

2
Vim에는 ctags, 들여 쓰기 및 프로그래밍에 대한 훨씬 직접적인 지원이 있습니다. 이메일은 프로그래밍을 위해 직접 무엇을 하는가?
Jens

답변:


5

CLI Vim 또는 GUI Vim?

단일 스레드이기 때문에 CLI Vim 자체 의 출력 :!ls또는 :!ls --color다른 외부 명령을 표시 할 수 없습니다 . Vim이 일시 중단되고 $ ls --color쉘에서 실행됩니다. 그 주위에 방법이 없습니다. 글쎄, 당신은 현재 버퍼에 외부 명령의 출력을 배치 할 수 있지만 그것은 동일하지 않습니다.

GUI Vim에서는 색상을 전혀 표시 할 수없는 유사 쉘만 얻을 수 있습니다. 그 주위에는 방법이 없습니다.

외부 명령에서 컬러 출력이 절실히 필요한 경우 Conque Shell 과 같은 플러그인을 사용 :!xterm & 하거나 외부 터미널 에뮬레이터를 시작해야합니다 .


1
나는 tmux 또는 screen과 같은 것을 제안 할 것입니다.
lucapette

네 확실합니다. 그러나 그 주장은 그것이 Vim 자체에 대한 질문이라고 주장했다. Tmux는 훌륭합니다. SSH를 통해 원격 서버에 로그인하고 tmux / screen 내에서 잘 구성된 Vim을 사용하는 것은 놀랍도록 즐거운 경험입니다. 구역에 들어가서 머물기에 완벽합니다.
romainl

@romainl 당신의 멋진 답변에 감사드립니다. gVim을 사용했는데 CLI vim도 색상을 표시 할 수 없다고 잘못 가정했습니다.
CMinus

1

:set shellcmdflag=-ic명령 프롬프트와 같이 쉘이 대화식으로 동작하도록 할 수 있습니다 .


1

다음에서 기능을 수행 할 수 있습니다 .bashrc.

function ls { /bin/ls --color=always; }
export -f ls

오타가 유감이지만 "ls"명령으로 색상을 표시하는 방법을 묻지 않습니다. vim으로 외부 명령을 실행할 때 색상을 유지하는 방법이 궁금합니다. 방금 "ls"를 예로 사용했습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.