Wie bekomme ich ein globales Anwendungsmenü für gvim?


34

Gvim verfügt in 12.04 nicht über ein globales Menü (Anwendungsmenü / Anwendungsmenü). Wenn Sie gvim von einem Terminal aus starten, wird nach 25 Sekunden die folgende Warnung im Terminal angezeigt:

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

Wie kann man das beheben?

Antworten:


35

Lösung 1: Erstellen Sie das globale Menü für gvim

Um das globale Menü für gvim abzurufen und die Warnmeldung zu entfernen, fügen Sie dies zu ~ / .bashrc hinzu und starten Sie das Terminal neu:

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

Lösung 2: Deaktivieren Sie das globale Menü für gvim

Um die Warnmeldung einfach loszuwerden, können Sie das globale Menü zumindest für gvim deaktivieren:

Fügen Sie dies beispielsweise zu ~ / .bashrc hinzu und starten Sie das Terminal neu:

alias gvim='UBUNTU_MENUPROXY= gvim'

Verweise


warum die Anführungszeichen um die "alle Argumente"?
Xtofl

Es tut uns leid. Ich habe mich gefragt, warum "$@"die .bashrc-Funktion Anführungszeichen enthält.
Xtofl

@xtofl: Ohne die Anführungszeichen um "$ @" kommt es zu Problemen mit zB Leerzeichen und wörtlichem '*' in Argumenten.
Håkon A. Hjortland

Können Sie aus Interesse erklären, wie und warum die erste Lösung funktioniert?
Ecatmur

1
@ecatmur: So funktioniert Lösung 1: Der Fehler hängt mit der gvimArt und Weise zusammen, in den Hintergrundmodus zu wechseln. gvim -fbleibt gvimim Vordergrund. Um die Shell gvimim Hintergrund laufen zu lassen, fügen wir ein &. Die Klammer in (foo &)führt den Befehl in einer Subshell aus, sodass er gvimnicht zum Hintergrundprozess der aktuellen Shell wird. Ohne Klammern würde das Schließen des Terminals durch Klicken auf das X ebenfalls töten gvim. function foo () { ... }Erstellt eine Shell-Funktion. Wir müssen hinzufügen /usr/bin/zu gvim, sonst werden wir eine unendlich rekursive Funktion erhalten. "$@"übergibt alle Argumente.
Håkon A. Hjortland


3

Mein Ubuntu 12.04 amd64 kann damit arbeiten gvim -f.


  • vim-gnome: 2: 7.3.429-2ubuntu2.1 + aptbuild1
  • terminator: 0.96-0ubuntu1 + aptbuild1
  • guake: 0,4,2-7 + aptbuild1

2

Ich kann die -f( --nofork) Option beim Start hinzufügen gvim:

alias gvim="gvim -f"

Dies funktioniert nur für gvim.
firefoxund andere haben diese -fOption nicht.


0

Eine weitere mögliche Ursache könnte die ~/.gnome2/VimDatei sein. Diese Lösung (die darauf hindeutet, dass Sie sie löschen ~/.gnome2/Vim) für das Problem in Hardy Heron (vor Unity) hat das Problem für mich unter Ubuntu 13.10 behoben.

Aus irgendeinem Grund hat gvim -fes bei mir nicht funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.