จะรับเมนูแอพพลิเคชั่นระดับโลกสำหรับ gvim ได้อย่างไร?


34

Gvim ไม่มีเมนูส่วนกลาง (เมนู appmenu / application) ใน 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: หากไม่มีเครื่องหมายอัญประกาศรอบ "$ @" คุณจะพบปัญหาเช่นช่องว่างและ '*' ตามตัวอักษรในข้อโต้แย้ง
Håkon A. Hjortland

คุณสามารถอธิบายได้อย่างไรว่าทำไมโซลูชั่นแรกจึงใช้ได้
ecatmur

1
@ecatmur: นี่เป็นวิธีแก้ปัญหาที่ 1 ทำงาน: ข้อผิดพลาดที่เกี่ยวข้องกับgvimวิธีการเข้าสู่โหมดพื้นหลัง gvim -fช่วยgvimในเบื้องหน้า จะทำให้การทำงานของเชลล์ในพื้นหลังที่เราเพิ่มgvim &เครื่องหมายวงเล็บในการ(foo &)รันคำสั่งในgvimเชลล์ย่อยดังนั้นจึงไม่กลายเป็นกระบวนการพื้นหลังของเชลล์ปัจจุบัน หากไม่มีวงเล็บการปิดเทอร์มินัลโดยการคลิกที่ X จะฆ่าgvimได้เช่นกัน function foo () { ... }สร้างฟังก์ชั่นเปลือก เราต้องเพิ่ม/usr/bin/เข้าไปgvimมิฉะนั้นเราจะได้ฟังก์ชั่นวนซ้ำแบบไม่มีที่สิ้นสุด "$@"ผ่านการขัดแย้งทั้งหมด
Håkon A. Hjortland



2

ฉันสามารถเพิ่มตัวเลือก-f( --nofork) เมื่อเริ่มต้นgvim:

alias gvim="gvim -f"

gvimนี้จะทำงานเฉพาะสำหรับ
firefoxและคนอื่น ๆ ไม่มี-fตัวเลือกนี้


0

สาเหตุอื่นที่อาจเป็นไปได้คือ~/.gnome2/Vimไฟล์ วิธีแก้ปัญหานี้ (ซึ่งแนะนำให้คุณลบ~/.gnome2/Vim) สำหรับปัญหาใน Hardy Heron (ก่อน Unity) แก้ไขปัญหาให้ฉันใน Ubuntu 13.10

ไม่ว่าด้วยเหตุผลใดก็ตามgvim -fฉันก็ไม่ได้ผล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.