vim 내부에서 외부 명령을 실행할 때 색상을 유지하려면 어떻게해야합니까? 그러나 :!ls –colorvim 내부에 전화 하면 모든

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

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

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



답변

CLI Vim 또는 GUI Vim?

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

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

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


답변

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


답변

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

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