vim не загружает файл _vimrc при запуске из git bash


13

Я скачал и установил git для Windows (msysgit) и часто использовал включенный git bash. Всякий раз, когда я запускаю vim из git bash, мой файл _vimrc не загружается, потому что есть подсветка синтаксиса или что-то еще. Когда я запускаю ту же команду для запуска формы vim в командной строке Windows (cmd) вместо git bash, она работает, как описано в моем файле _vimrc. Единственная настройка, которую я сделал для git bash, - это добавить следующий bash_profile в C: \ Program Files (x86) \ Git \ etc

alias up='cd ..'
alias ls='ls --color'
alias la='ls -a'
alias vimconfig='vim /c/Program\ Files/Vim/_vimrc'
alias gvimconfig='vim /c/Program\ Files/Vim/_gvimrc'
alias bashconfig='vim /c/Program\ Files/Git/etc/bash_profile'
LS_COLORS='di=36:fi=37:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=90'
export LS_COLORS

Кто-нибудь знает, почему он правильно загружает мой файл _vimrc при запуске vim из cmd и неправильно при запуске из git bash?

Ответы:


14

msysgit поставляется с собственной версией vim.

Вы можете проверить это, запустив

type vim

внутри вашей подсказки git bash.

Я думаю, что это скажет вам, что vim= /bin/vim, нет /c/Program Files/Vim/Vim.exe.

Тогда беги

vim --version | grep vimrc

чтобы увидеть, какие файлы конфигурации он ищет.

В моей системе это говорит

$ vim --version | grep vimrc
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$VIM\_vimrc"

$VIMуказывает на C:\Program Files\Git\share\vimи $HOMEуказывает на c:\Users\USERNAME.

Я думаю, что ваш лучший вариант - запустить версию vim для Windows, например

alias vim='/c/Program Files/Vim/Vim.exe'

или похожие.

Или вы можете отодвинуть версию vim для msysgit, например:

mv /bin/vim /bin/vim.disabled

Вы имели в виду "msysgit поставляется с собственной версией vim"?
Гептит

2
Обратите внимание, что вам может потребоваться запустить git bash от имени администратора, чтобы выполнить эту последнюю строку.
Кристо

Спасибо, работает отлично. Я следовал последней команде в Windows 8.1
Ибн Саид

2

/bin/vim это просто скрипт перенаправления, вы можете изменить его и установить путь к тому, что вы хотите.

Редактировать C:\Program Files (x86)\Git\bin\vimкак администратор.

Изменить это:

#!/bin/sh

exec /share/vim/vim74/vim "$@"

К этому (или каков твой путь):

#!/bin/sh

exec "/c/Program Files (x86)/Vim/vim74/gvim.exe" "$@"

1

в vim введите :scriptnames.

: scr [iptnames] - перечислить все имена сценариев в порядке их поступления. Номер используется для идентификатора скрипта.


2
Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос.
DavidPostill

@DavidPostill, ИМХО, это не не по теме, так как проблема в том, что его пользовательский сценарий не полностью загружен или переопределен другими сценариями. В моем ответе говорится, как узнать, какие сценарии получены и в каком порядке они получены. Также обратите внимание, что это довольно старый вопрос, моя цель не только ответить на исходный вопрос, но и обобщить хорошо.
qeatzy

Я не сказал, что это не по теме, я сказал, что это не отвечает на вопрос.
DavidPostill

Я ответил на вопрос. Автор: scr [iptname], вы знаете, что ваш скрипт загружен или нет. Если загружен, какой кандидат переопределит его. Пожалуйста, прочитайте вопрос снова. - может быть установлено два vim, и процесс их запуска может отличаться.
qeatzy
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.