VIM : 외부 프로그램이 실행 중인지 확인하는 기능

VIM : 외부 프로그램이 실행 중인지 확인하는 기능

vim 함수를 사용하여 pgrep을 사용하여 프로그램이 실행 중인지 확인하고, 실행 중이 아니면 뭔가를 해보고 싶습니다. 특히 다음과 같은 것을 달성하고 싶습니다.

function! checkifrunning(mystring)
    if 'pgrep "mystring"' shows that something is NOT running
        --do something--
    endif
endfunction

내 생각엔 'system()' 함수를 사용해야 할 것 같은데, 어떻게 해야 할지 잘 모르겠습니다. 누군가 도와줄 수 있나요?

편집: 나는 특히 pgrep을 사용하는 솔루션을 원하고 다른 방법은 원하지 않습니다.

답변1

function! checkifrunning(mystring)
    if !system('pgrep "' . a:mystring . '"')
        " --do something--
    endif
endfunction

기술적으로!에서 작동숫자, 문자열이 주어지면 먼저 문자열을 숫자로 변환합니다. 그러나 실행 중인 프로세스가 없으면 의 출력은 pgrep비어 있으며 숫자로 변환하면 0이 됩니다. 실행 중인 프로세스가 있는 경우 숫자로 변환하면 0이 아닌 결과가 나타납니다.

대신에 'pgrep "' . a:mystring . '"'할 수도 있습니다 'pgrep ' . shellescape(a:mystring).

답변2

다음과 같이 사용할 수 있습니다.

:call system("pgrep process name ")

출력을 인쇄하려면,

:echo system("pgrep process name ")

다음과 같은 변수에 출력을 저장할 수 있습니다.

:let a=system("pgrep process name ")

그리고 루프, 인쇄에서 해당 변수를 사용하거나 문자열 함수도 사용하세요.

관련 정보