当我跑步时,这件事就开始了vim
,Cygwin
我突然收到错误消息:E185: Cannot find color scheme 'alduin'
在今天之前我并没有收到过这个错误。
我一直在安装 Cygwin 包,一定是无意中安装了新版本的vim
(?):我现在有了文件夹/usr/share/vim/vim74/
和/usr/share/vim/vim80/
。
当我运行时,vim
启动画面显示版本为 8.0.1567。我想我输入了alduin.vim
,.../vim74/
但没有.../vim80/
我的问题:如何/usr/bin/vim.exe
与特定版本的 vim 关联?即当我运行“ vim
”时为什么调用 vim 8.0 而不是 vim 7.4?
> which vim
/usr/bin/vim
>
> ls -l /usr/bin/vim*
-rwxr-xr-x 1 User None 2645011 Mar 4 2018 /usr/bin/vim.exe
lrwxrwxrwx 1 User None 7 Dec 14 21:39 /usr/bin/vimdiff -> vim.exe
-rwxr-xr-x 1 User None 2099 Mar 4 2018 /usr/bin/vimtutor
lrwxrwxrwx 1 Usr None 8 Dec 14 21:31 /usr/bin/vimx -> gvim.exe
>
> find /usr/share/vim/vim74/ -name "*.exe"
> find /usr/share/vim/vim80/ -name "*.exe"
>
> printenv | grep -i vim
>
请注意,上面/usr/bin/vim
不是指向我两个 vim 版本目录之一中的可执行文件的软链接,我本来假设这个版本选择就是这样完成的。
答案1
通过包管理器(Cygwin 的,但同样适用于“真正的”Linux 发行版),你只能安装一特定版本的 Vim。因此/usr/bin/vim.exe
(由/usr/bin
包管理器拥有)不需要链接。Vim 包可以直接将可执行文件放在那里。
现在对于运行时文件(在 下/usr/share/vim
),在“单一版本”参数之后,路径中也不需要版本号,但 Vim 的默认安装脚本(Makefile
)中有一个版本,大多数软件包维护者都保持这种状态。根据您(意外)升级的方式,您要么拥有一个完全废弃的 Vim 7.4 运行时/usr/share/vim/vim74/
(vim.exe
并被覆盖),要么这只是一个几乎为空的骨架目录层次结构,仅包含那些文件你添加到其中(像你的colors/alduin.vim
)。
为了避免将来出现此类问题,请不要使用系统目录,而是将 Vim 自定义项放在用户特定目录;即~/.vim/
,正如所述:help load-plugins
。Unix/Linux(Vim 的起源)在系统和用户之间有明确的区分,尽管在 Windows 下这种区分不太明显(至少在早期),但建议坚持这种区分,尤其是在 Cygwin 中。