Bagaimana cara mendapatkan menu aplikasi global untuk gvim?

34

Gvim tidak memiliki menu global (menu app / menu) dalam 12,04, dan ketika memulai gvim dari terminal, peringatan berikut muncul di terminal setelah 25 detik:

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

Bagaimana cara memperbaikinya?

Håkon A. Hjortland
sumber

Jawaban:

35

Solusi 1: Buat menu global untuk pekerjaan gvim

Untuk mendapatkan menu global untuk gvim dan untuk menghilangkan pesan peringatan, tambahkan ini ke ~ / .bashrc dan restart terminal:

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

Solusi 2: Nonaktifkan menu global untuk gvim

Untuk menghilangkan pesan peringatan, Anda dapat menonaktifkan menu global, setidaknya untuk gvim:

Sebagai contoh, tambahkan ini ke ~ / .bashrc dan restart terminal:

alias gvim='UBUNTU_MENUPROXY= gvim'

Referensi

Håkon A. Hjortland
sumber
mengapa kutipan di sekitar 'semua argumen'?
xtofl
Maaf. Saya bertanya-tanya mengapa ada tanda kutip di "$@"dalam fungsi .bashrc.
xtofl
@xtofl: Tanpa tanda kutip di sekitar "$ @" Anda mendapat masalah dengan misal spasi dan '*' dalam argumen.
Håkon A. Hjortland
Tidak tertarik, dapatkah Anda menjelaskan bagaimana dan mengapa solusi pertama berfungsi?
ecatmur
1
@ecatmur: Inilah cara solusi 1 bekerja: Bug ini terkait dengan gvimcara masuk ke mode latar belakang. gvim -fterus gvimdi latar depan. Untuk membuat shell berjalan gvimdi latar belakang kami menambahkan &. Tanda kurung di (foo &)menjalankan perintah dalam subkulit, sehingga gvimtidak menjadi proses latar belakang shell saat ini. Tanpa tanda kurung, menutup terminal dengan mengklik X juga akan mematikan gvim. function foo () { ... }menciptakan fungsi shell. Kita harus menambahkan /usr/bin/untuk gvim, kalau tidak kita akan mendapatkan fungsi jauh rekursif. "$@"melewati semua argumen.
Håkon A. Hjortland
3

Ubuntu 12,04 amd64 saya dapat digunakan 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
sumber
2

Saya dapat menambahkan opsi -f( --nofork) saat memulai gvim:

alias gvim="gvim -f"

Ini hanya berfungsi untuk gvim.
firefoxdan yang lain tidak memiliki -fopsi ini .

kev
sumber
0

Penyebab potensial lain mungkin ~/.gnome2/Vimfile. Solusi ini (yang menyarankan agar Anda hapus ~/.gnome2/Vim) untuk masalah di Hardy Heron (sebelum Unity) memperbaiki masalah saya di Ubuntu 13.10.

Untuk alasan apa pun, gvim -ftidak berhasil untuk saya.

Umang
sumber