Vim Advent Calendar 2013 140日目:gtk 環境だと remote_foreground() がうまく動作しない

この記事は Vim Advent Calendar 2013 140日目の記事になります。
書きたい人募集中ですよ!!
さて、今回はすごくマイナーなネタでも。

[gtk 環境だと remote_foreground() がうまく動作しない]

Vim のマイナーな関数に remote_foreground() というのがあります。
これは任意の Vim をフォアグラウンドに移動させるという関数なのですが手元の Ubuntu 環境だとうまく動作しませんでした。
で、raa さんが見つけてくれたんですがどうやら結構前から gtk 環境で動作しなくなっているみたいです。


上記のメールはもう4年以上前なのでその後進展があったのかわからないのですが『wmctrl を使えばいい』という回避方法が書かれていたので試してみました。
とりあえず、以下のような感じで回避することに。

function! s:remote_foreground(name)
    if has("gui_gtk") && executable("wmctrl")
        call system(printf("wmctrl -i -a 0x%x", remote_expr(a:name, "v:windowid")))
    else
        call remote_foreground(a:name)
    endif
endfunction


だいぶ workaround だけどしょうがないかなー。