답변:
을 사용 :!
하면 외부 명령이 쉘에서 실행되고 맹렬한 출력이 Vim 내에서 캡처되지 않습니다. 터미널에 인쇄 된 내용을 확인한 다음 외부 명령이 완료된 후 컨트롤이 Vim으로 돌아갑니다.
출력을 유지하려면 Vim 버퍼 로 출력을 읽어야합니다 . 이를 위해 :read!
명령이 있습니다. 새로운 스크래치 버퍼 를 열려면 다음과 결합하십시오 :new
.
:new | 0read ! <command>
현재 버퍼의 파일 이름 ( %
)을 외부 명령 에 전달하려면 현재 버퍼에서 :execute
이미 평가되도록 을 사용해야 합니다.
:execute 'new | 0read ! interpreter' expand('%')
또는 새 버퍼를 사용하면 이전 버퍼가 대체 버퍼가되고 대신 다음을 사용한다는 사실을 사용 #
합니다 %
.
:new | 0read ! interpreter #
로 스크래치 버퍼를 제거하십시오 :bdelete!
.
출력이 실행되는 동안 비동기 적으로 출력을 보려면 @chaos answer에 언급 된 것처럼 외부 멀티플렉서 또는 플러그인이 필요합니다.
내가 아는 한에서 할 수 없습니다 vim
. 그러나 이와 같은 터미널 멀티플렉서를 사용하십시오 screen
. vim을 열기 전에 멀티플렉서를 시작하십시오 :
screen
다음 Enter 키를 누릅니다 ctrl- a Shoritzontal과 ctrl- a |세로 화면을 유출에 대한.
이제 vim
분할 화면 중 하나 에서 파일을 엽니 다 . ctrl-를 사용하여 다른 화면으로 이동하십시오 a tab. 두 번째 화면에서는 먼저 새 화면 ( ctrl- a c) 을 열어야 사용할 수 있습니다.
vim 화면에서는 파일을 편집 할 수 있고 다른 화면에서는 파일을 실행하고 메시지와 코드를 영구적으로 볼 수 있습니다.
여기에 대한 빠른 참조 가 screen
있습니다.
tmux
멀티플렉서 및 vim-dispatch
플러그인을 사용 하여 분할 창간에 분할 및 점프를 자동화 할 수 있습니다 .