vim이 외부 명령을 실행 중일 때 표시되는 vim 상태 줄을 변경하고 싶습니다. vim에서 "!"를 사용하여 외부 프로그램으로 텍스트 행을 파이프하는 vim 스크립트가 있습니다. 실행 후 vim은 명령 출력을 기다리고 행을 바꿉니다. 기다리는 동안 상태 표시 줄에 외부 명령의 상태를 표시하고 싶습니다. 이것이 가능합니까?명령을 실행하는 동안 vim 상태 표시 줄 변경
1
A
답변
1
임시 전역 변수를 사용하여이 문제를 해결할 것입니다.
:이 같은이 함수의 반환 값을 사용하도록 statusline을 설정할 수 있습니다function! TemporaryStatus()
if exists("g:temp_var")
return g:temp_var
else
return ""
endif
endfunction
: 여기가있는 경우 변수 g:temp_var
의 값을 반환하는 간단한 함수는 그렇지 않으면 빈 문자열을 반환한다
set statusline=%!TemporaryStatus()
그런 다음 느린 외부 명령을 호출 할 때 미리 표시 할 메시지를 사용하여 임시 변수를 설정하고 나중에 unlet
을 설정하십시오. redraw!
명령이 있는지 빔이 표시를 갱신 (따라서 statusline에 g:temp_var
의 업데이트 된 값을 사용) 만들 필요하다고
...
let g:temp_var = "I am calling a slow external command"
redraw!
call SlowExternalCommand()
unlet g:temp_var
redraw!
...
참고 : 예를 들면.
편집 물론
그것을 메아리와 같이, 이후에 표시를 취소하여 메시지를 표시하는 것이 훨씬 간단 할 것이다 :
...
redraw!
echo "I am calling a slow external command"
call SlowExternalCommand()
redraw!
...
메시지가 표시됩니다 이런 식으로 Vim 명령 줄이 아니라 상태 표시 줄에 있습니다. 위에 정의 된 함수는 필요하지 않습니다.
관련 문제
- 1. vim 외부 명령으로 상태 표시 줄 업데이트
- 2. vim 스크립트 : vim 함수에서 명령을 실행하는 방법
- 3. 터미널에서 Vim 명령을 실행하는 방법
- 4. 매크로를 실행하는 동안 진행률 표시 줄
- 5. ios6의 파란색 상태 표시 줄 변경
- 6. 통화 상태 표시 줄 변경 UITableView의 헤더
- 7. vim 상태 줄 색상은 어떻게 바꿀 수 있습니까?
- 8. vim : 분할 창에 대해 다른 상태 표시 줄 설정
- 9. 빔 상태 표시 줄 예측/완료?
- 10. 자바의 상태 표시 줄?
- 11. 글로벌 상태 표시 줄
- 12. 자바의 상태 표시 줄
- 13. wxPython 상태 표시 줄
- 14. VBA 상태 표시 줄
- 15. 상태 표시 줄 숨기기
- 16. 상태 표시 줄 해당
- 17. 상태 표시 줄 높이가 변경 될 때보기의 프레임을 변경 하시겠습니까?
- 18. AJAX : 상태 표시 줄 : 함수가 실행되는 동안 UpdatePanel을 강제 업데이트합니다.
- 19. 어떻게 항상 상태 표시 줄
- 20. Android : 상태 표시 줄/전원 표시 줄 표시/숨기기
- 21. Vim 플러그인은 파일이 명령을 실행하는 arg로 제공 될 때만 작동합니다.
- 22. VB에서 sql 명령을 실행하는 동안 문제가 발생했습니다.
- 23. expect 명령을 실행하는 동안 spawn_id가 잘못되었습니다.
- 24. 상태 표시 줄 아이콘이 1 초 동안 표시된 다음 사라집니다.
- 25. 응용 프로그램이 표시되는 동안 상태 표시 줄 Default.png
- 26. 사용자 정의 상태 표시 줄
- 27. OSX 시스템 상태 표시 줄
- 28. IE7 및 상태 표시 줄
- 29. 리디렉션 인쇄 상태 표시 줄
- 30. 레이아웃 문제의 상태 표시 줄
나는 본다. 하지만 필요한 것은 업데이트 된 상태 표시 줄입니다. 예 : 5 % 10 % 15 % (진행 정보 자체는 외부 명령에 의해 만들어지며 vim이 그것을 읽을 수있는 파이프 나 파일에 기록 될 수 있습니다). 그러나 중요한 문제는 상태 명령 줄이 외부 명령을 실행하는 동안 업데이트를 허용하는지 여부입니다. – highsciguy
'!'를 사용하여이 작업을 수행 할 수 없습니다. '!'는 시스템 호출 중에 Vim을 중지시킨다. Vim을 중지하지 않는다고 주장하는'! start' (': help :! start' 참조)를 사용해 볼 수도 있습니다.하지만 사용한 적이 없습니다. 작동하면 명령이 실행되는 동안'g : temp_var'를 업데이트 할 수 있습니다. –
그러나 이것은 아마도 파일에 명령의 출력을 삽입 할 수 없다는 것을 의미합니까? – highsciguy