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になります。実行中のプロセスがある場合は、数値に変換するとゼロ以外の値が提供されます。

代わりに'pgrep "' . a:mystring . '"'、あなたも同じことができます'pgrep ' . shellescape(a:mystring)

おすすめ記事