我发现 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/vim81
,vim/vim81/autoload
。并且我在我的操作系统上得到了矛盾的信息:
vim --version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Jun 15 2019 16:41:15)
1.脚本名称
进入vim,输入:scriptnames
ex模式,什么都没显示!
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
它们什么都不输出,我进入vim
,scriptnames
什么都不显示。
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-nox
和vim-gtk3
,它们提供了更多功能。
您可以通过运行 来配置默认使用的 Vim 版本(如果您安装了多个版本)sudo update-alternatives --config vim
。如果您未指定,则默认版本是功能最丰富的版本,但如果您希望使用其他版本,则可以更改它。除非您特别想要仅具有基本 vi 功能的极简版本,否则我不推荐使用精简版本。
除 tiny 版本外,所有这些软件包都依赖于vim-runtime
,它提供了正常的运行时代码。您可以使用 来查看这些文件的位置dpkg -L vim-runtime
。如果您使用的是 tiny 版本,则它不依赖于此功能,因为该版本仅包含最少的脚本支持,并且运行时文件无法使用。
vim-tiny
如果您没有看到运行时文件,则看起来您可能已将该包作为您的 Vim 安装,因此您可以尝试安装vim-nox
或vim-gtk3
然后使用配置正确的版本update-alternatives
。
一般情况下,我建议不要使用来确定磁盘上实际有什么,因为它必然是过时的,这通常很不方便。如果您真的想知道磁盘上有什么,locate
最好使用。find