O vim não carrega o arquivo _vimrc quando iniciado a partir do git bash


13

Fiz o download e instalei o git para windows (msysgit) e usei frequentemente o git bash incluído. Sempre que eu executo o vim do git bash, meu arquivo _vimrc não é carregado porque há realce de sintaxe ou algo assim. Quando executo o mesmo comando para iniciar o vim form na linha de comando do Windows (cmd), em vez do git bash, ele funciona como descrito no meu arquivo _vimrc. A única personalização que fiz no git bash é adicionar o seguinte bash_profile ao C: \ Arquivos de Programas (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

Alguém sabe por que ele carrega meu arquivo _vimrc corretamente quando o vim é iniciado a partir do cmd e incorretamente quando iniciado a partir do git bash?

Respostas:


14

O msysgit vem com sua própria versão do vim.

Você pode verificar isso executando

type vim

dentro do seu prompt do git bash.

Eu acho que isso lhe dirá vim= /bin/vim, não /c/Program Files/Vim/Vim.exe.

Então corra

vim --version | grep vimrc

para ver quais arquivos de configuração ele procura.

No meu sistema, diz

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

$VIMaponta para C:\Program Files\Git\share\vime $HOMEaponta para c:\Users\USERNAME.

Eu acho que sua melhor opção é executar sua versão do vim baseada em Windows, por exemplo

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

ou similar.

Ou você pode mover a versão msysgit do vim de lado, por exemplo

mv /bin/vim /bin/vim.disabled

Você quis dizer "msysgit vem com sua própria versão do vim"?
Heptite

2
Observe que você pode precisar executar o git bash como administrador para fazer a última linha.
Kristo

Obrigado, funciona perfeitamente. Segui o último comando no Windows 8.1
Ibn Saeed

2

/bin/vim é apenas um script de redirecionamento, você pode modificá-lo e definir o caminho para o que quiser.

Edite C:\Program Files (x86)\Git\bin\vimcomo administrador.

Mude isso:

#!/bin/sh

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

Para isso (ou seja qual for o seu caminho):

#!/bin/sh

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

1

no vim, digite :scriptnames.

: scr [iptnames] - Liste todos os nomes de script de origem, na ordem em que foram originados pela primeira vez. O número é usado para o ID do script.


2
Por favor, leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original.
DavidPostill

@DavidPostill, IMHO, não está fora de tópico, pois o problema é que seu script personalizado não é todo originário ou é substituído por outros scripts. Minha resposta diz como saber quais scripts são originados e em que ordem são originados. Observe também que é uma pergunta bastante antiga, meu ponto não é apenas responder à pergunta original, mas generalizar bem.
qeatzy

Eu não disse que estava fora do tópico, eu disse que não respondeu à pergunta.
DavidPostill

Eu respondi a pergunta. Por: scr [iptname], você sabe que seu script está sempre carregado ou não. Se carregado, qual é o candidato que o substitui. Por favor, leia a pergunta novamente. - pode haver dois vim instalados e o processo de inicialização pode ser diferente.
qeatzy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.