3

複数の gvim ウィンドウを起動するスクリプトがあります。私はそれらを特定の方法で配置したいと考えています。wmctrlこれは可能ですが、複数のインスタンスがあるため、ウィンドウ名があいまいです。私は考えます:pidを使用してください。

gvim /tmp/xxx &

X=$!

wmctrl -lp | grep $X
echo $X
wmctrl -lp | grep GVIM
echo sleeping
sleep 3
wmctrl -lp | grep GVIM

出力は次のとおりです。

5211
sleeping
0x03400062  0 5218   localhost xxx (/tmp) - GVIM

gvim は pid 5211 で始まるようですが、実際のウィンドウの新しいプロセスを起動します。また、そのプロセスはまだ存在しません。

開始したばかりの gvim インスタンスの wmctrl ウィンドウ ハンドルを明確に取得するにはどうすればよいですか? または、何か他のものを使用する必要がありますか?

この--echo-widオプションは良さそうに見えますが、私は KDE を使用しています。

4

1 に答える 1

0

私はちょうど同じ問題に遭遇し、実行して解決しました

gvim -f &
pid=$!

上記のコメントでnmが示唆したように。

gvim sais のマンページ:

-f          Foreground.   For  the  GUI  version, Vim will not fork and detach from the
            shell it was started in.  On the Amiga, Vim is not restarted to open a  new
            window.   This option should be used when Vim is executed by a program that
            will wait for the edit session to finish (e.g. mail).   On  the  Amiga  the
            ":sh" and ":!" commands will not work.

それが機能する理由を説明します。

あなたがこれを試したのか、それとも答えがもはや重要なのかはわかりませんが、良い質問を未回答のままにしておくのは嫌いです:)

-fクレジットは、スイッチを指摘した nm に送られます

于 2013-08-14T18:05:51.407 に答える