1

PHPアプリへの処理を自動化したい。だから私はこのプラグインを使用して、デバッグプロセスを開始した後 (F5)、コマンドラインに次のメッセージを表示します:

ポート 9000 で新しい接続を 5 秒間待機しています...

そのため、そのメッセージをスローした直後に、ホームフォルダーにある bash スクリプトを呼び出したいと思います。そこで、次のようなキー ビディングを作成します。

map gm <F5> :!sh ~/refresh_browser.sh<enter>

私の問題:メッセージのためwaiting ... 、コマンドラインにコマンドを書き込むことはできません。

waiting..それで、 bashスクリプトを実行する前にコマンドラインをクリアしてメッセージを削除する方法はありますか? そうでない場合、あなたのアドバイスは何ですか?

編集:Ingo Karkatの回答の後、最終的に次のようなキーバインディングを作成しました:

map gm :! ~/my_script.sh &<enter><F5>  

そしてこのスクリプト:

#!/bin/sh
xdotool windowfocus `xdotool search --name "Mozilla Firefox" | head -1`
sleep 2
xdotool key F5
xdotool windowactivate `xdotool search --name "GVIM" | head -1`
xdotool key F4 #to go to the breakpoint
4

1 に答える 1

2

メッセージと追加のwaiting...コマンドを発行できないという事実は、Vimがまだブロックされていることを意味します。おそらく、そのプラグインは外部コマンドを実行しているか、何かをポーリングしています。Vimは本質的にシングルスレッドであるため、そこでできることは何もありません。(まあ、並列処理を可能にするVimscriptからPerl、Python、Rubyなどに移行することを除いて。)

一方、起動する予定のBashスクリプトは、バックグラウンドで(追加された&)追加のプロセスを起動できるため、意図した呼び出しシーケンスを逆にして、プラグインの前にスクリプトを呼び出すことをお勧めします。

于 2012-11-08T13:31:18.167 に答える