gvimのグローバルアプリケーションメニューを取得する方法は?


34

12.04では、Gvimにはグローバルメニュー(appmenu /アプリケーションメニュー)がありません。また、ターミナルからgvimを起動すると、25秒後にターミナルに次の警告が表示されます。

** (gvim:20320): WARNING **: Unable to create Ubuntu Menu Proxy: Timeout was reached

これを修正する方法は?

回答:


35

解決策1:gvimのグローバルメニューを機能させる

gvimのグローバルメニューを取得し、警告メッセージを削除するには、これを〜/ .bashrcに追加し、ターミナルを再起動します。

function gvim () { (/usr/bin/gvim -f "$@" &) }

解決策2:gvimのグローバルメニューを無効にする

警告メッセージを取り除くには、少なくともgvimのグローバルメニューを無効にします。

たとえば、これを〜/ .bashrcに追加し、ターミナルを再起動します。

alias gvim='UBUNTU_MENUPROXY= gvim'

参照資料


なぜ「すべての引数」を引用するのですか?
xtofl

ごめんなさい。"$@".bashrc関数の中に引用符があるのはなぜだろうと思った。
xtofl

@xtofl:「$ @」を引用符で囲まないと、引数にスペースやリテラル「*」などの問題が発生します。
ホーコンA. Hjortland

興味深いことに、最初のソリューションがどのように、そしてなぜ機能するのかを説明してもらえますか?
ecatmur

1
@ecatmur:これがソリューション1の仕組みです:バグはgvim、バックグラウンドモードに入る方法に関連しています。フォアグラウンドでgvim -f保持gvimします。シェルをgvimバックグラウンドで実行するには、&。の括弧は(foo &)サブシェルでコマンドを実行するためgvim、現在のシェルのバックグラウンドプロセスにはなりません。括弧なしで、Xをクリックして端末を閉じると、killになりgvimます。function foo () { ... }シェル関数を作成します。に追加/usr/bin/する必要があります。追加しgvimないと、無限再帰関数が取得されます。"$@"すべての引数を渡します。
ホーコンA. Hjortland


3

Ubuntu 12.04 amd64はで動作しgvim -fます。


  • vim-gnome:2:7.3.429-2ubuntu2.1 + aptbuild1
  • ターミネーター:0.96-0ubuntu1 + aptbuild1
  • guake:0.4.2-7 + aptbuild1

2

開始時に-f--nofork)オプションを追加できますgvim

alias gvim="gvim -f"

これはでのみ機能しgvimます。
firefox他にはこの-fオプションがありません。


0

別の潜在的な原因は~/.gnome2/Vimファイルである可能性があります。Hardy Heron(Unityの前)の問題に対するこのソリューション(削除することをお勧めします~/.gnome2/Vim)は、Ubuntu 13.10での問題を修正しました。

何らかの理由で、gvim -f私のために動作しませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.