Вопрос: git использует другую версию vim, чем zsh


У меня есть плагин с именем YouCompleteMe, установленный в vim. Когда vim начнет с установленного плагина, он поднимет предупреждение, если версия vim будет минимальной.

Я использую vim 7.3.754, который может запускать YCM, но когда я выполняю команды вроде git merge или git commit --amend, Я вижу предупреждение:

YouCompleteMe unavailable: requires Vim 7.3.584+

Мой вопрос: почему git использует другую версию vim, чем zsh, и как я могу заставить ее использовать ту же версию?


2
2018-03-26 19:33


Источник




Ответы:


В соответствии с man git-var git определяет редактор, используя следующую последовательность:

Порядок предпочтения - это среда $ GIT_EDITOR              переменную, затем конфигурацию core.editor, затем $ VISUAL, затем $ EDITOR, а затем, наконец, vi.

Я полагаю, вы не установили ни одну из этих переменных, поэтому git принимает vi - который обычно запускает vim в vi совместимый режим (в зависимости от вашего распределения).

Итак, проверьте, где находится текущий vim:

which vim

Затем определите этот исполняемый файл как редактор git по умолчанию:

git config --global core.editor /usr/bin/vim

Альтернативно, неплохо было бы установить $VISUAL, Другие программы также используют эту переменную среды. Для этого включите

export VISUAL=/usr/bin/vim

в вашей ~/.zshrc и делай source ~/.zshrc,


4
2018-03-26 19:55



У вас есть идея, почему git, возможно, игнорировал $VISUAL, $EDITOR а также ~/.gitconfig? Единственный способ, которым я мог заставить это работать, - явно установить $GIT_EDITOR, - Sean Hill
@SeanHill: вы проверили, есть ли у вас core.editor определяется где-то в вашей конфигурации git? Поскольку это имеет приоритет над $VISUALа также $EDITOR это может выглядеть так, как если бы эти переменные среды игнорировались. - mpy
Да, установка core.editor на /usr/local/bin/vim также игнорировался. Гит использовал другую версию vim, независимо от того, что я ввел $VISUAL, $EDITOR или core.editor, Единственное, что он будет уважать, это $GIT_EDITOR, - Sean Hill
Чтобы быть понятным, он использовал vi хотя я установил другие переменные и $GIT_EDITOR не был установлен вообще. Я использую версию 2.1.1 git. - Sean Hill
@SeanHill: Наверное, лучше всего, если вы откроете собственный вопрос по своей проблеме. - mpy


Гит использует либо $EDITOR или $VISUAL или $GIT_EDITOR или редактор, который вы указали для core.editor в ~/.gitconfig,


2
2018-03-26 19:53