Comment obtenir un menu d'application global pour gvim?

34

Gvim n'a pas de menu global (appmenu / menu d'application) dans 12.04, et lors du démarrage de gvim depuis un terminal, l'avertissement suivant apparaît dans le terminal après 25 secondes:

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

Comment régler ceci?

Håkon A. Hjortland
la source

Réponses:

35

Solution 1: Créer le menu global pour gvim

Pour obtenir le menu global de gvim et supprimer le message d'avertissement, ajoutez ceci à ~ / .bashrc et redémarrez le terminal:

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

Solution 2: désactiver le menu global pour gvim

Pour supprimer simplement le message d’avertissement, vous pouvez désactiver le menu global, du moins pour gvim:

Par exemple, ajoutez ceci à ~ / .bashrc et redémarrez le terminal:

alias gvim='UBUNTU_MENUPROXY= gvim'

Les références

Håkon A. Hjortland
la source
pourquoi les citations autour de 'tous les arguments'?
xtofl
Désolé. Je me demandais pourquoi il y avait des guillemets "$@"dans la fonction .bashrc.
xtofl
@xtofl: Sans les guillemets autour de "$ @", vous rencontrez des problèmes avec, par exemple, l'espace et le '*' littéral dans les arguments.
Håkon A. Hjortland
Par intérêt, pourriez-vous expliquer comment et pourquoi la première solution fonctionne?
ecatmur
1
@ecatmur: Voici comment fonctionne la solution 1: Le bogue est lié à gvimla manière de passer en mode arrière-plan. gvim -fgarde gvimau premier plan. Pour que le shell s'exécute gvimen arrière-plan, nous ajoutons un fichier &. La parenthèse dans (foo &)exécute la commande dans un sous-shell, de sorte que gvimcela ne devienne pas un processus en arrière-plan du shell actuel. Sans parenthèses, fermer le terminal en cliquant sur le X tuerait également gvim. function foo () { ... }crée une fonction shell. Nous devons ajouter /usr/bin/à gvim, sinon nous aurons une fonction infiniment récursive. "$@"passe tous les arguments.
Håkon A. Hjortland
3

Mon Ubuntu 12.04 amd64 peut fonctionner avec gvim -f.


  • vim-gnome: 2: 7.3.429-2ubuntu2.1 + aptbuild1
  • terminateur: 0.96-0ubuntu1 + aptbuild1
  • guake: 0.4.2-7 + aptbuild1
Chu-Siang Lai
la source
2

Je peux ajouter l' option -f( --nofork) au démarrage gvim:

alias gvim="gvim -f"

Cela ne fonctionne que pour gvim.
firefoxet d'autres n'ont pas cette -foption.

kev
la source
0

Le ~/.gnome2/Vimfichier est une autre cause potentielle . Cette solution (qui suggère que vous supprimiez ~/.gnome2/Vim) pour le problème dans Hardy Heron (avant Unity) a résolu le problème pour moi sur Ubuntu 13.10.

Pour une raison quelconque, gvim -fn'a pas fonctionné pour moi.

Umang
la source