Это началось, когда я запустил 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 ответ1

2

Через менеджер пакетов (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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .