为什么安装 vim 的一部分而不是整个目录?

为什么安装 vim 的一部分而不是整个目录?

我发现 vim 的一部分是使用以下命令安装的:

sudo apt install vim

检查路径包含 vim 的所有目录。

sudo find / -name  vim
/etc/alternatives/vim
/etc/vim
/var/lib/dpkg/alternatives/vim
/usr/share/bug/vim
/usr/share/cmake-3.13/editors/vim
/usr/share/lintian/overrides/vim
/usr/share/doc/vim
/usr/bin/vim

没有这样的目录,例如vim/vim81vim/vim81/autoload。并且我在我的操作系统上得到了矛盾的信息:

vim  --version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Jun 15 2019 16:41:15)

1.脚本名称

进入vim,输入:scriptnamesex模式,什么都没显示!

2.定位

locate vim81 |grep autoload
/usr/share/vim/vim81/autoload
/usr/share/vim/vim81/autoload/README.txt
/usr/share/vim/vim81/autoload/RstFold.vim
/usr/share/vim/vim81/autoload/ada.vim

3.ls

ls  /usr/share/vim/vim81/autoload
ls: cannot access '/usr/share/vim/vim81/autoload': No such file or directory

我不喜欢 vim82 而喜欢 vim81,对它们的任何版本都很满意,但我很遗憾在我安装后它们都无法工作。
我的安装出了什么问题?

sudo updatedb
sudo apt remove vim
sudo apt install vim
locate vim81
Nothing output
locate vim82
Nothing output

仍然无法安装。按照@harrymc 所说的操作:

uname -a
Linux mydebian 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux
sudo apt-get update
sudo apt-get install vim vim-gtk3
sudo updatedb

现在检查 vim81 或 vim82:

locate vim81
locate vim82

它们什么都不输出,我进入vimscriptnames什么都不显示。

sudo find /  -name 'vim'  
/etc/alternatives/vim
/etc/vim
/var/lib/dpkg/alternatives/vim
/home/debian/nginx/contrib/vim
/usr/share/bug/vim
/usr/share/cmake-3.13/editors/vim
/usr/share/lintian/overrides/vim
/usr/share/doc/vim
/usr/bin/vim

没有像/usr/share/vim我朋友的 debian 中看到的目录,也就是说,安装代理vim并安装,重新安装无法修复我的软件包管理系统。
有一个特殊的目录/usr/share/lintian/overrides/vim

ls  /usr/share/lintian/overrides  |grep  vim
vim
vim-common
vim-gtk3
vim-gui-common
vim-tiny

显示这些文件中的内容。

debian@mydebian:/usr/share/lintian/overrides$ cat vim
# vim.xxx files are alternatives for (g)vim, which has a manpage in vim(-gui)-common
vim binary: binary-without-manpage usr/bin/vim.basic
debian@mydebian:/usr/share/lintian/overrides$ cat vim-common
# Provided by vim (virtual) packages
vim-common binary: desktop-command-not-in-package usr/share/applications/vim.desktop vim
debian@mydebian:/usr/share/lintian/overrides$ cat vim-gtk3
# vim.xxx files are alternatives for (g)vim, which has a manpage in vim(-gui)-common
vim-gtk3 binary: binary-without-manpage usr/bin/vim.gtk3
debian@mydebian:/usr/share/lintian/overrides$ cat vim-gui-common
# Provided by gvim (virtual) packages
vim-gui-common binary: desktop-command-not-in-package usr/share/applications/gvim.desktop gvim
debian@mydebian:/usr/share/lintian/overrides$ cat vim-tiny
# vim.xxx files are alternatives for (g)vim, which has a manpage in vim(-gui)-common
vim-tiny binary: binary-without-manpage usr/bin/vim.tiny
    

删除所有文件ls /usr/share/lintian/overrides |grep vim并重新安装?

答案1

您的目录似乎/usr/share/vim已被手动删除(它现在为“ not found”,但原始目录仍引用它locate)。您可以使用以下命令重新安装它:

apt install --reinstall vim-runtime

解释:

  • /usr/share/vim由包管理,vim-runtime它是包的依赖项vim
    • 您可以使用以下命令检查哪个包管理该目录dpkg -S /usr/share/vim
    • 或者你可以使用以下命令列出包管理的目录dpkg -L vim-runtime
  • 重新安装该vim包不会vim-runtime产生任何变化,因此/usr/share/vim不会重新安装。

答案2

如果您运行sudo apt install vim,则 Vim 已安装完毕,并且可正常运行。该软件包提供了一组合理的 Vim 功能,但不支持 X11 或脚本语言。还有其他软件包,例如vim-noxvim-gtk3,它们提供了更多功能。

您可以通过运行 来配置默认使用的 Vim 版本(如果您安装了多个版本)sudo update-alternatives --config vim。如果您未指定,则默认版本是功能最丰富的版本,但如果您希望使用其他版本,则可以更改它。除非您特别想要仅具有基本 vi 功能的极简版本,否则我不推荐使用精简版本。

除 tiny 版本外,所有这些软件包都依赖于vim-runtime,它提供了正常的运行时代码。您可以使用 来查看这些文件的位置dpkg -L vim-runtime。如果您使用的是 tiny 版本,则它不依赖于此功能,因为该版本仅包含最少的脚本支持,并且运行时文件无法使用。

vim-tiny如果您没有看到运行时文件,则看起来您可能已将该包作为您的 Vim 安装,因此您可以尝试安装vim-noxvim-gtk3然后使用配置正确的版本update-alternatives

一般情况下,我建议不要使用来确定磁盘上实际有什么,因为它必然是过时的,这通常很不方便。如果您真的想知道磁盘上有什么,locate最好使用。find

相关内容