Jak uzyskać globalne menu aplikacji dla gvim?

34

Gvim nie ma menu globalnego (menu aplikacji / menu aplikacji) w 12.04, a po uruchomieniu gvim z terminala, po 25 sekundach pojawia się w terminalu następujące ostrzeżenie:

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

Jak to naprawić?

Håkon A. Hjortland
źródło

Odpowiedzi:

35

Rozwiązanie 1: Uruchom globalne menu dla gvim

Aby uzyskać globalne menu dla gvim i pozbyć się ostrzeżenia, dodaj to do ~ / .bashrc i zrestartuj terminal:

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

Rozwiązanie 2: Wyłącz globalne menu dla gvim

Aby pozbyć się komunikatu ostrzegawczego, możesz wyłączyć menu globalne, przynajmniej dla gvim:

Na przykład dodaj to do ~ / .bashrc i zrestartuj terminal:

alias gvim='UBUNTU_MENUPROXY= gvim'

Referencje

Håkon A. Hjortland
źródło
dlaczego cytaty wokół „wszystkich argumentów”?
xtofl,
Przepraszam. Zastanawiałem się, dlaczego "$@"w funkcji .bashrc są cytaty .
xtofl,
@xtofl: Bez cudzysłowu wokół „$ @” masz kłopoty z np. spacją i dosłownym „*” w argumentach.
Håkon A. Hjortland
Czy z braku zainteresowania mógłbyś wyjaśnić, jak i dlaczego działa pierwsze rozwiązanie?
ecatmur
1
@ecatmur: Tak działa rozwiązanie 1: błąd związany jest ze gvimsposobem przejścia w tryb tła. gvim -futrzymuje się gvimna pierwszym planie. Aby powłoka działała gvimw tle, dodajemy &. Nawias in (foo &)uruchamia polecenie w podpowłoce, dzięki czemu gvimnie staje się procesem w tle dla bieżącej powłoki. Bez nawiasu zamknięcie terminala poprzez kliknięcie X również zabiłoby gvim. function foo () { ... }tworzy funkcję powłoki. Musimy dodać /usr/bin/do gvim, w przeciwnym razie będziemy mieli nieskończenie funkcji rekurencyjnej. "$@"przekazuje wszystkie argumenty.
Håkon A. Hjortland,
3

Mój Ubuntu 12.04 amd64 może współpracować gvim -f.


  • vim-gnome: 2: 7.3.429-2ubuntu2.1 + aptbuild1
  • terminator: 0.96-0ubuntu1 + aptbuild1
  • guake: 0.4.2-7 + aptbuild1
Chu-Siang Lai
źródło
2

Mogę dodać opcję -f( --nofork) podczas uruchamiania gvim:

alias gvim="gvim -f"

To działa tylko dla gvim.
firefoxa inni nie mają tej -fopcji.

kev
źródło
0

Inną potencjalną przyczyną może być ~/.gnome2/Vimplik. To rozwiązanie (które sugeruje usunięcie ~/.gnome2/Vim) dla problemu w Hardy Heron (przed Unity) rozwiązało problem dla mnie na Ubuntu 13.10.

Z jakiegokolwiek powodu gvim -fnie działało dla mnie.

Umang
źródło