ฉันจะหยุด gvim ไม่ให้ทำงานล้มเหลวเมื่อเปิดไฟล์ได้อย่างไร


12

ฉันใช้ Ubuntu Desktop 16.04 LTS และgvim(เป็นกลุ่มที่มีส่วนต่อประสานกราฟิกกับผู้ใช้) ทำให้ฉันล้มเหลวเมื่อฉันพยายามเปิดไฟล์ใด ๆ โดยใช้เมนู GUI อย่างไรก็ตามฉันสามารถเปิดไฟล์จากเทอร์มินัลได้เช่น:

user@computer:~$ vim -g ./path/to/file

ข้อความแสดงข้อผิดพลาดต่อไปนี้จะถูกพิมพ์ไปที่เทอร์มินัลถ้าฉันเรียกใช้gvimจากเทอร์มินัลโดยใช้vim -gแล้วทำให้เกิดความผิดพลาดโดยพยายามเปิดไฟล์ผ่านทาง GUI / เมนูบาร์:

(gvim:20175): GLib-CRITICAL **: g_ptr_array_insert: assertion 'index_ <= (gint)rarray->len' failed

** (gvim:20175): CRITICAL **: unity_gtk_menu_shell_get_item: assertion '0 <= index && index < items->len' failed

** (gvim:20175): CRITICAL **: unity_gtk_menu_item_get_child_shell: assertion 'UNITY_GTK_IS_MENU_ITEM (item)' failed

** (gvim:20175): CRITICAL **: unity_gtk_menu_shell_get_item: assertion '0 <= index && index < items->len' failed

** (gvim:20175): CRITICAL **: unity_gtk_menu_item_get_label: assertion 'UNITY_GTK_IS_MENU_ITEM (item)' failed

** (gvim:20175): CRITICAL **: unity_gtk_menu_item_get_icon: assertion 'UNITY_GTK_IS_MENU_ITEM (item)' failed
Vim: Caught deadly signal SEGV
Vim: Finished.

นี่เป็นแพ็คเกจที่เกี่ยวข้องกับเสียงเรียกเข้าที่ฉันติดตั้ง:

user@computer:~$ apt list --installed | grep vim

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

vim-common/xenial-updates,now 2:7.4.1689-3ubuntu1.1 amd64 [installed]
vim-gtk3/xenial-updates,now 2:7.4.1689-3ubuntu1.1 amd64 [installed]
vim-gui-common/xenial-updates,xenial-updates,now 2:7.4.1689-3ubuntu1.1 all [installed,automatic]
vim-runtime/xenial-updates,xenial-updates,now 2:7.4.1689-3ubuntu1.1 all [installed,automatic]
vim-tiny/xenial-updates,now 2:7.4.1689-3ubuntu1.1 amd64 [installed]

คำตอบ:


11

Ubuntu 17.04

สิ่งต่าง ๆ แตกเมื่อฉันอัพเกรดและฉันแก้ไขด้วย:

sudo apt-get remove vim-gtk3
sudo apt-get install vim-gtk

vim-gnomeที่กล่าวถึงในคำตอบของ Adam Pบอกว่ามันชี้ไปที่vim-gtk3ดังนั้นจึงไม่มีอะไรเปลี่ยนแปลง

vim-gtk อย่างไรก็ตามบอกว่ามันใช้ gtk 2 และทำงานได้


5

ฉันสามารถหยุดการทำงานล้มเหลว (จนถึง) โดยการถอนการติดตั้งvim-gtk3แพคเกจและติดตั้งvim-gnomeแพคเกจ

ถอนการติดตั้งvim-gtk3:

user@computer:~$ sudo apt remove vim-gtk3
[sudo] password for user: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.4.0-34 linux-headers-4.4.0-34-generic
  linux-image-4.4.0-34-generic linux-image-extra-4.4.0-34-generic
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  vim-gtk3
0 upgraded, 0 newly installed, 1 to remove and 18 not upgraded.
After this operation, 2,948 kB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 336958 files and directories currently installed.)
Removing vim-gtk3 (2:7.4.1689-3ubuntu1.1) ...
update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/vi (vi) in auto mode
update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/view (view) in auto mode
update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/ex (ex) in auto mode
update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in auto mode
update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/rview (rview) in auto mode

ติดตั้งvim-gnome:

user@computer:~$ sudo apt install vim-gnome
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.4.0-34 linux-headers-4.4.0-34-generic linux-image-4.4.0-34-generic
  linux-image-extra-4.4.0-34-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libbonoboui2-0 libbonoboui2-common libgnome2-0 libgnome2-bin libgnomeui-0 libgnomeui-common
Suggested packages:
  cscope vim-doc fonts-dejavu
The following NEW packages will be installed:
  libbonoboui2-0 libbonoboui2-common libgnome2-0 libgnome2-bin libgnomeui-0 libgnomeui-common
  vim-gnome
0 upgraded, 7 newly installed, 0 to remove and 18 not upgraded.
Need to get 1,619 kB of archives.
After this operation, 5,536 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libgnome2-bin amd64 2.32.1-5ubuntu1 [5,040 B]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libgnome2-0 amd64 2.32.1-5ubuntu1 [1,656 B]
Get:3 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libbonoboui2-common all 2.24.5-3ubuntu1 [11.9 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libbonoboui2-0 amd64 2.24.5-3ubuntu1 [154 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libgnomeui-common all 2.24.5-3.1 [16.3 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 libgnomeui-0 amd64 2.24.5-3.1 [207 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-gnome amd64 2:7.4.1689-3ubuntu1.1 [1,223 kB]
Fetched 1,619 kB in 0s (3,435 kB/s)  
Selecting previously unselected package libgnome2-bin.
(Reading database ... 336954 files and directories currently installed.)
Preparing to unpack .../libgnome2-bin_2.32.1-5ubuntu1_amd64.deb ...
Unpacking libgnome2-bin (2.32.1-5ubuntu1) ...
Selecting previously unselected package libgnome2-0:amd64.
Preparing to unpack .../libgnome2-0_2.32.1-5ubuntu1_amd64.deb ...
Unpacking libgnome2-0:amd64 (2.32.1-5ubuntu1) ...
Selecting previously unselected package libbonoboui2-common.
Preparing to unpack .../libbonoboui2-common_2.24.5-3ubuntu1_all.deb ...
Unpacking libbonoboui2-common (2.24.5-3ubuntu1) ...
Selecting previously unselected package libbonoboui2-0:amd64.
Preparing to unpack .../libbonoboui2-0_2.24.5-3ubuntu1_amd64.deb ...
Unpacking libbonoboui2-0:amd64 (2.24.5-3ubuntu1) ...
Selecting previously unselected package libgnomeui-common.
Preparing to unpack .../libgnomeui-common_2.24.5-3.1_all.deb ...
Unpacking libgnomeui-common (2.24.5-3.1) ...
Selecting previously unselected package libgnomeui-0:amd64.
Preparing to unpack .../libgnomeui-0_2.24.5-3.1_amd64.deb ...
Unpacking libgnomeui-0:amd64 (2.24.5-3.1) ...
Selecting previously unselected package vim-gnome.
Preparing to unpack .../vim-gnome_2%3a7.4.1689-3ubuntu1.1_amd64.deb ...
Unpacking vim-gnome (2:7.4.1689-3ubuntu1.1) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Setting up libgnome2-bin (2.32.1-5ubuntu1) ...
Setting up libgnome2-0:amd64 (2.32.1-5ubuntu1) ...
Setting up libbonoboui2-common (2.24.5-3ubuntu1) ...
Setting up libbonoboui2-0:amd64 (2.24.5-3ubuntu1) ...
Setting up libgnomeui-common (2.24.5-3.1) ...
Setting up libgnomeui-0:amd64 (2.24.5-3.1) ...
Setting up vim-gnome (2:7.4.1689-3ubuntu1.1) ...
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/vimdiff (vimdiff) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/vi (vi) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/view (view) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/ex (ex) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/editor (editor) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/gvim (gvim) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/gview (gview) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/rgview (rgview) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/rgvim (rgvim) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/evim (evim) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/eview (eview) in auto mode
update-alternatives: using /usr/bin/vim.gnome to provide /usr/bin/gvimdiff (gvimdiff) in auto mode
Processing triggers for libc-bin (2.23-0ubuntu3) ...

1
เมื่อวันที่ 17.04 สิ่งนี้จะใช้งานไม่ได้อีกต่อไปเนื่องจาก vim-gnome กลายเป็นแพ็คเกจเปลี่ยนผ่านไปเป็น vim-gtk3 ดูคำตอบของ Ciro Santilli สำหรับวิธีแก้ปัญหาที่ปรับปรุงแล้ว Als ดู bug bugs.launchpad.net/ubuntu/+source/vim/+bug/1650666
Confusion

1
นอกจากนี้ยังพบปัญหานี้ใน 17.04 (zesty) gvim 8.0; ถอนการติดตั้งเป็นกลุ่ม-gtk3 (ซึ่งถอนการติดตั้งเป็นกลุ่ม-คำพังเพย) และการติดตั้งเป็นกลุ่ม-GTK คงมันสำหรับในตอนนี้ซึ่งผมพบว่าจากปัญหานี้bugs.launchpad.net/ubuntu/+source/vim/+bug/1611363
ไมเคิล

2

สำหรับกรณีของฉันฉันจะลบ gvim ที่ติดตั้งไว้ก่อนโดย:

sudo apt-get remove --auto-remove vim-gtk3

จากนั้นฉันติดตั้ง gvim ด้วย:

sudo apt install vim-gtk3-py2 

อย่างไรก็ตามฉันใช้ Vim8 จาก:

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