분할 창에서 셸 명령의 출력 열기

분할 창에서 셸 명령의 출력 열기

해석된 프로그래밍 언어를 고려해보세요.

를 사용하여 현재 열려 있는 스크립트를 실행할 수 있으며 ! interpreter %, 실행이 완료된 후 return 키를 사용하여 vim으로 돌아갈 수 있습니다.

현재 창을 실행된 셸 명령의 출력으로 바꾸지 않고 대신 새 분할 창에서 출력을 여는 것이 가능합니까? 스크립트를 실행하는 동안에도 소스 코드를 계속 보고 싶습니다.

시도했지만 :split ! interpreter %작동하지 않았습니다.

방법이 있나요? 나는 vim 7.3을 사용하고 있습니다.

답변1

를 사용하면 :!외부 명령이 셸에서 실행되고 일시적인 출력이 Vim 내부에 캡처되지 않습니다. 터미널에 무엇이 인쇄되는지 확인하고 외부 명령이 끝나면 제어권이 Vim으로 반환됩니다.

출력을 유지하려면 Vim으로 읽어야 합니다.완충기. 이를 위해 명령이 있습니다 :read!. 새로 열려면할퀴다버퍼, 이것을 다음과 결합하십시오 :new:

:new | 0read ! <command>

현재 버퍼의 파일 이름( )을 외부 명령에 전달하려면 %을 사용해야 :execute현재 버퍼에서 이미 평가됩니다.

:execute 'new | 0read ! interpreter' expand('%')

또는 새 버퍼를 사용하면 이전 버퍼가번갈아 하는하나를 #대신 사용하십시오 %.

:new | 0read ! interpreter #

로 스크래치 버퍼를 제거하세요 :bdelete!.

실행되는 동안 출력을 비동기적으로 보려면 @chaos 답변에서 언급한 대로 외부 멀티플렉서 또는 플러그인이 필요합니다.

답변2

내가 아는 한, 에서는 그렇게 할 수 없습니다 vim. 그러나 그런 경우에는 터미널 멀티플렉서를 사용하십시오 screen. vim을 열기 전에 멀티플렉서를 시작하십시오:

screen

그런 다음 가로 방향으로 화면을 보려면 ctrl-를 누르고 세로 방향으로 화면을 보려면 -를 누르세요 .a Sctrla |

vim이제 분할 화면 중 하나에서 파일을 엽니다 . 그리고 ctrl- 를 사용하여 다른 화면으로 이동합니다 a tab. 두 번째 화면에서는 이를 사용하기 전에 먼저 새 화면( ctrl- ) 을 열어야 합니다 .a c

vim 화면에서는 파일을 편집할 수 있고, 다른 화면에서는 vim을 실행하여 메시지와 코드를 영구적으로 볼 수 있습니다.

여기에빠른 참조을 위한 screen.

관련 정보