Como obter o menu global de aplicativos para o gvim?

34

O Gvim não possui um menu global (menu de aplicativos / aplicativo) na versão 12.04 e, ao iniciar o gvim a partir de um terminal, o seguinte aviso aparece no terminal após 25 segundos:

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

Como consertar isto?

Håkon A. Hjortland
fonte

Respostas:

35

Solução 1: faça o menu global para o gvim funcionar

Para obter o menu global para o gvim e se livrar da mensagem de aviso, adicione-o ao ~ / .bashrc e reinicie o terminal:

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

Solução 2: Desativar menu global para gvim

Para se livrar da mensagem de aviso, você pode desativar o menu global, pelo menos para o gvim:

Por exemplo, adicione isso a ~ / .bashrc e reinicie o terminal:

alias gvim='UBUNTU_MENUPROXY= gvim'

Referências

Håkon A. Hjortland
fonte
por que as aspas em torno dos 'todos os argumentos'?
Xtofl 07/12/12
Desculpe. Eu me perguntava por que existem aspas "$@"na função .bashrc.
Xtofl 07/12/12
@xtofl: Sem as aspas em torno de "$ @", você terá problemas com, por exemplo, espaço e literal '*' nos argumentos.
Håkon A. Hjortland
Por interesse, você poderia explicar como e por que a primeira solução funciona?
ecatmur
11
@ecatmur: É assim que a solução 1 funciona: O bug está relacionado à gvimmaneira de entrar no modo de segundo plano. gvim -fmantém gvimem primeiro plano. Para fazer o shell rodar gvimem segundo plano, adicionamos um &. O parêntese em (foo &)executa o comando em um subshell, para que gvimnão se torne um processo em segundo plano do shell atual. Sem parênteses, fechar o terminal clicando no X também mataria gvim. function foo () { ... }cria uma função shell. Devemos adicionar /usr/bin/a gvim, caso contrário, obteremos uma função infinitamente recursiva. "$@"passa todos os argumentos.
Håkon A. Hjortland
3

Meu Ubuntu 12.04 amd64 pode funcionar 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
fonte
2

Eu posso adicionar a opção -f( --nofork) quando iniciar gvim:

alias gvim="gvim -f"

Isso só funciona para gvim.
firefoxe outros não têm essa -fopção.

kev
fonte
0

Outra causa potencial pode ser o ~/.gnome2/Vimarquivo. Esta solução (que sugere que você exclua ~/.gnome2/Vim) para o problema no Hardy Heron (antes do Unity) corrigiu o problema para mim no Ubuntu 13.10.

Por qualquer motivo, gvim -fnão funcionou para mim.

Umang
fonte