vim no carga el archivo _vimrc cuando se inicia desde git bash

13

Descargué e instalé git para Windows (msysgit) y usé frecuentemente el git bash incluido. Cada vez que ejecuto vim desde git bash, mi archivo _vimrc no se carga porque hay resaltado de sintaxis o algo así. Cuando ejecuto el mismo comando para iniciar el formulario vim con la línea de comando de Windows (cmd) en lugar de git bash, funciona como se describe en mi archivo _vimrc. La única personalización que hice para git bash es agregar el siguiente bash_profile a 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

¿Alguien sabe por qué carga mi archivo _vimrc correctamente cuando vim se inicia desde cmd e incorrectamente cuando se inicia desde git bash?

Ben
fuente

Respuestas:

14

msysgit viene con su propia versión de vim.

Puede verificar esto ejecutando

type vim

dentro de su indicador de git bash.

Creo que te dirá que vim= /bin/vim, no /c/Program Files/Vim/Vim.exe.

Entonces corre

vim --version | grep vimrc

para ver qué archivos de configuración busca.

En mi sistema, dice

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

$VIMapunta C:\Program Files\Git\share\vimy $HOMEapunta a c:\Users\USERNAME.

Supongo que su mejor opción es ejecutar su versión de vim basada en Windows, por ejemplo

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

o similar.

O bien, puede mover la versión msysgit de vim a un lado, por ej.

mv /bin/vim /bin/vim.disabled
Mikel
fuente
¿Quiso decir "msysgit viene con su propia versión de vim"?
Heptita
2
Tenga en cuenta que es posible que deba ejecutar git bash como administrador para hacer esa última línea.
Kristo
Gracias, funciona perfectamente. Seguí el último comando en Windows 8.1
Ibn Saeed
2

/bin/vim es solo un guión de redireccionamiento, puede modificarlo y establecer la ruta a lo que desee.

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

Cambia esto:

#!/bin/sh

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

A esto (o sea cual sea su camino):

#!/bin/sh

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

en vim, escriba :scriptnames.

: scr [iptnames] - Lista todos los nombres de script de origen, en el orden en que se originaron por primera vez. El número se usa para la identificación del script.

qeatzy
fuente
2
Por favor lea la pregunta otra vez cuidadosamente. Su respuesta no responde a la pregunta original.
DavidPostill
@DavidPostill, en mi humilde opinión, no está fuera de tema, ya que el problema es que su secuencia de comandos personalizada no se obtiene todo, o puede ser anulada por otras secuencias de comandos. Mi respuesta dice cómo saber qué scripts se obtienen y en qué orden se obtienen. También tenga en cuenta que es una pregunta bastante antigua, mi punto no es solo responder a la pregunta original sino generalizar bien.
qeatzy
No dije que fuera de tema, dije que no respondía la pregunta.
DavidPostill
Respondí la pregunta. Por: scr [iptname], sabes que tu script se ha cargado o no. Si está cargado, cuál es el candidato que lo anula. Por favor lea la pregunta nuevamente. - podría haber dos vim instalados y su proceso de inicio puede ser diferente.
qeatzy