2009-10-03 3 views
2

vim에서 gnu 화면 "창"으로 메시지를 보내는 방법을 알아 내려고하고 있습니다. 즉, 화면 세션이 열려 있고 하나의 창에 vim 세션이 있으며 다른 세션에서는 인터프리터 인터프리터가 있습니다. vim 세션을 저장할 때 새로운 환경에서 다른 창로드로 인터프리터를 다시 시작하고 싶습니다. vim에서 "on save"훅을 사용하여 다른 "화면 창"에 쉘 명령을 보내어 스크립트를 종료하고 재시작하는 방법 이외의 모든 것을 알아낼 수 있습니다. 명령을 보내는 방법을 알아낼 수 있다면 프로세스를 종료하고 새 프로세스를 시작할 수 있습니다. 바로 "창"으로 시작해야합니다.어떻게 vim이 gnu 화면 세션에 명령을 보내도록 할 수 있습니까?

답변

4

vim에서 셸 명령을 실행하고 screen -X을 사용하여 화면에 명령을 내 보냅니다. 일부 순열은 :at <other-window> stuff <restart-command>입니다. 자세한 명령은 man screen의 사용자 정의 섹션을 참조하십시오. 내가 정력을 사용하여 화면 창 1에, 그리고 내가 IRB 세션을 다시 시작하기 위해 창 공에 IRB 세션을했다 경우

예를 들어, 나는

:!screen -X at 0 stuff exit^Mirb^M 

(^M가 CTRL-를 통해 입력 할 것 V Enter).

+1

안녕하세요. 거의 정확히 내가 뭘 찾고 있었는지 - 유일한 문제는 내가 다른 화면에 원하는 명령을 보냈지 만 실제로 (또는 10 초 후에) 화면에 "붙여 넣기"를 할 때까지 기다릴 때까지 기다리는 것입니다. "{사용자 이름}의 명령 : {명령}"이라고 말합니다. 화면에받은 명령을 받아 들일 수 있도록하는 방법이 있다고 생각하십니까? – shaunxcode

+0

화면의 상태 메시지에 익숙하지 않습니다. – rampion

+2

msgwait를 0으로 설정하면 (Ca : msgwait 0 ) 지연을 없애기 위해 등록 할 수 있습니다. msgwait를 설정하고 실제 명령을 실행 한 다음 다시 설정할 수 있습니다. –

1

두 번째 화면 창에서을 실행하면 몇 초마다 구성표 해석기를 실행하면 충분합니다. watch 명령을 실행하는 시간 간격을 조정하는 것은 명령 줄 매개 변수를 사용하여 조정할 수 있습니다. watch 매뉴얼 페이지에 자세한 내용이 들어 있습니다.

관련 문제