Как получить глобальное меню приложения для gvim?

34

Gvim не имеет глобального меню (appmenu / application menu) в 12.04, и при запуске 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: без кавычек вокруг "$ @" вы получите проблемы, например, с пробелом и литералом '*' в аргументах.
Хокон А. Хьортланд
Вы не могли бы объяснить, как и почему работает первое решение?
Ecatmur
1
@ecatmur: так работает решение 1: ошибка связана gvimс переходом в фоновый режим. gvim -fдержит gvimна переднем плане. Чтобы запустить оболочку gvimв фоновом режиме, мы добавляем &. Скобка внутри (foo &)запускает команду в подоболочке, чтобы gvimона не стала фоновым процессом текущей оболочки. Без круглых скобок закрытие терминала нажатием X также приведет к уничтожению gvim. function foo () { ... }создает функцию оболочки. Мы должны добавить /usr/bin/к gvim, иначе мы получим бесконечно рекурсивную функцию. "$@"передает все аргументы.
Хокон А. Хьортланд
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файл. Это решение (которое предлагает вам удалить ~/.gnome2/Vim) для проблемы в Hardy Heron (до Unity) устранило проблему для меня в Ubuntu 13.10.

По какой-то причине gvim -fу меня не сработало.

Umang
источник