Bagaimana saya bisa menghentikan gvim agar tidak mogok saat membuka file?

12

Saya di Ubuntu Desktop 16.04 LTS dan gvim(vim dengan antarmuka pengguna grafis) terus menerjang saya ketika saya mencoba membuka file apa pun menggunakan GUI / menu. Namun, saya dapat membuka file dari terminal, misalnya:

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

Pesan kesalahan berikut dicetak ke terminal jika saya memulai gvimdari terminal menggunakan vim -gdan kemudian menyebabkan crash dengan mencoba membuka file melalui GUI / menu bar:

(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.

Ini adalah paket terkait vim yang telah saya instal:

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]
Adam P
sumber

Jawaban:

11

Ubuntu 17.04

Banyak hal pecah ketika saya memutakhirkan, dan saya menyelesaikannya dengan:

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

vim-gnomedisebutkan dalam jawaban Adam P mengatakan itu menunjuk ke vim-gtk3, jadi tidak ada yang akan berubah.

vim-gtk Namun mengatakan menggunakan gtk 2, dan bekerja.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
5

Saya dapat menghentikan crash (sejauh ini) dengan menghapus instalasi vim-gtk3paket dan menginstal vim-gnomepaket.

Copot pemasangan 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

Pasang 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) ...
Adam P
sumber
1
Pada 17.04, ini tidak akan berfungsi lagi, karena vim-gnome sekarang merupakan paket transisi ke vim-gtk3. Lihat jawaban oleh Ciro Santilli untuk solusi yang diperbarui. Als see bug bugs.launchpad.net/ubuntu/+source/vim/+bug/1650666
Kebingungan
1
Juga baru saja mengalami masalah ini pada 17.04 (zesty) gvim 8.0; menghapus instalan vim-gtk3 (yang menghapus instalan vim-gnome), dan menginstal vim-gtk memperbaikinya untuk saat ini, yang saya temukan dari bug ini bug.launchpad.net/ubuntu/+source/vim/+bug/1611363
michael
2

Untuk kasus saya, saya pertama-tama menghapus gvim yang diinstal dengan:

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

Kemudian saya menginstal gvim dengan:

sudo apt install vim-gtk3-py2 

Omong-omong, saya menggunakan Vim8 dari:

sudo add-apt-repository ppa:jonathonf/vim
matahari
sumber