Gvim için global uygulama menüsü nasıl elde edilir?


34

Gvim, 12.04'te global bir menüye (uygulama / uygulama menüsü) sahip değildir ve gvim bir terminalden başlatılırken, 25 saniye sonra terminalde aşağıdaki uyarı görüntülenir:

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

Bu nasıl düzeltilir?

Yanıtlar:


35

1. Çözüm: gvim çalışması için global menüyü hazırlayın

Gvim için genel menüyü almak ve uyarı iletisinden kurtulmak için, bunu ~ / .bashrc dosyasına ekleyin ve terminali yeniden başlatın:

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

2. Çözüm: gvim için global menüyü devre dışı bırakın

Uyarı mesajından hemen kurtulmak için, en azından gvim için, genel menüyü devre dışı bırakabilirsiniz:

Örneğin, bunu ~ / .bashrc dosyasına ekleyin ve terminali yeniden başlatın:

alias gvim='UBUNTU_MENUPROXY= gvim'

Referanslar


neden 'tüm argümanlar' etrafındaki alıntılar?
xtofl

üzgünüm. Neden "$@".bashrc işlevinde neden tırnak olduğunu merak ettim .
xtofl

@ xtofl: "$ @" etrafındaki alıntılar olmadan, argümanlarda örneğin boşluk ve değişmez '*' ile sorun yaşarsınız.
Håkon A. Hjortland

İlgilenilmeyen, ilk çözümün nasıl ve neden işe yaradığını açıklayabilir misiniz?
ecatmur

1
@ ecatmur: Bu, çözüm 1'in işleyiş şeklidir: Böcek, gvimarkaplan moduna geçme şekliyle ilgilidir. ön planda gvim -ftutar gvim. Kabuğun gvimarka planda çalışmasını sağlamak için bir tane ekleriz &. İçinde parantez (foo &), komutu alt kabukta çalıştırır, böylece gvimgeçerli kabuğun arka plan işlemi olmaz. Parantez olmadan, X'i tıklatarak terminali kapatmak da öldürür gvim. function foo () { ... }bir kabuk işlevi yaratır. Biz eklemelisiniz /usr/bin/için gvimaksi takdirde biz bir sonsuz özyinelemeli fonksiyon alacak. "$@"tüm argümanları iletir.
Håkon A. Hjortland


3

Benim Ubuntu 12.04 amd64 ile çalışabilir gvim -f.


  • vim-gnome: 2: 7.3.429-2ubuntu2.1 + aptbuild1
  • sonlandırıcı: 0.96-0ubuntu1 + aptbuild1
  • guake: 0.4.2-7 + aptbuild1

2

Başlarken -f( --nofork) seçeneğini ekleyebilirim gvim:

alias gvim="gvim -f"

Bu sadece işe yarıyor gvim.
firefoxve diğerleri bu -fseçeneğe sahip değildir .


0

Başka bir olası neden ~/.gnome2/Vimdosya olabilir . Hardy Heron'daki (Unity'den önceki) sorun için ( silmenizi öneriyor) bu çözüm~/.gnome2/Vim benim için sorunu Ubuntu 13.10'da düzeltti.

Sebep ne olursa olsun, gvim -fbenim için işe yaramadı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.