Làm thế nào để có được menu ứng dụng toàn cầu cho gvim?


34

Gvim không có menu toàn cầu (menu appmenu / ứng dụng) trong 12.04 và khi bắt đầu gvim từ thiết bị đầu cuối, cảnh báo sau sẽ xuất hiện trong thiết bị đầu cuối sau 25 giây:

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

Làm thế nào để khắc phục điều này?

Câu trả lời:


35

Giải pháp 1: Tạo menu toàn cầu cho gvim làm việc

Để có được menu toàn cầu cho gvim và để loại bỏ thông báo cảnh báo, hãy thêm nó vào ~ / .bashrc và khởi động lại thiết bị đầu cuối:

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

Giải pháp 2: Vô hiệu hóa menu toàn cầu cho gvim

Để thoát khỏi thông báo cảnh báo, bạn có thể tắt menu toàn cầu, ít nhất là đối với gvim:

Ví dụ: thêm phần này vào ~ / .bashrc và khởi động lại thiết bị đầu cuối:

alias gvim='UBUNTU_MENUPROXY= gvim'

Tài liệu tham khảo


Tại sao các trích dẫn xung quanh 'tất cả các đối số'?
xtofl

lấy làm tiếc. Tôi tự hỏi tại sao có các trích dẫn xung quanh "$@"trong hàm .bashrc.
xtofl

@xtofl: Không có dấu ngoặc kép quanh "$ @", bạn sẽ gặp rắc rối với ví dụ: không gian và nghĩa đen '*' trong các đối số.
Håkon A. Hjortland

Không quan tâm, bạn có thể giải thích làm thế nào và tại sao giải pháp đầu tiên hoạt động?
ecatmur 17/12/13

1
@ecatmur: Đây là cách giải pháp 1 hoạt động: Lỗi liên quan đến gvimcách đi vào chế độ nền. gvim -fgiữ gvimở phía trước. Để làm cho shell chạy gvimtrong nền, chúng ta thêm một &. Dấu ngoặc trong (foo &)chạy lệnh trong một lớp con, do đó, gvimnó không trở thành một quá trình nền của lớp vỏ hiện tại. Không có dấu ngoặc đơn, đóng thiết bị đầu cuối bằng cách nhấp vào X cũng sẽ giết gvim. function foo () { ... }tạo một hàm shell. Chúng ta phải thêm /usr/bin/vào gvim, nếu không chúng ta sẽ có một hàm đệ quy vô hạn. "$@"vượt qua mọi lý lẽ.
Håkon A. Hjortland


3

Ubuntu 12.04 amd64 của tôi có thể hoạt động với gvim -f.


  • vim-gnome: 2: 7.3.429-2ubfox2.1 + aptbuild1
  • thiết bị kết thúc: 0.96-0ubfox1 + aptbuild1
  • hướng dẫn: 0.4.2-7 + aptbuild1

2

Tôi có thể thêm tùy chọn -f( --nofork) khi bắt đầu gvim:

alias gvim="gvim -f"

Điều này chỉ hoạt động cho gvim.
firefoxvà những người khác không có -ftùy chọn này .


0

Một nguyên nhân tiềm năng khác có thể là các ~/.gnome2/Vimtập tin. Giải pháp này (gợi ý rằng bạn xóa ~/.gnome2/Vim) cho sự cố trong Hardy Heron (trước Unity) đã khắc phục sự cố cho tôi trên Ubuntu 13.10.

Vì lý do gì, gvim -fđã không làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.