从git bash启动时vim不会加载_vimrc文件


13

我已经下载并安装了适用于Windows的git(msysgit),并经常使用随附的git bash。每当我从git bash运行vim时,都不会加载_vimrc文件,因为存在语法高亮显示或其他内容。当我运行相同的命令以在Windows命令行(cmd)而不是git bash中启动vim窗体时,它按照_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

有谁知道为什么从cmd启动vim并从git bash启动时错误地加载_vimrc文件?

Answers:


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

我猜您最好的选择是运行基于Windows的vim版本,例如

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

或类似。

或者您可以将vim的msysgit版本移开,例如

mv /bin/vim /bin/vim.disabled

您是说“ msysgit带有自己的vim版本”吗?
赫普提(Heptite)

2
请注意,您可能必须以管理员身份运行git bash才能执行最后一行。
克里斯多(Kristo)2012年

谢谢,它运行良好。我在Windows 8.1中遵循了最后一个命令
Ibn Saeed 2015年

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]-列出所有源脚本名称,按照它们最初的来源顺序排列。该数字用于脚本ID。


2
请仔细阅读问题。您的答案没有回答原始问题。
DavidPostill

@DavidPostill,恕我直言,这不是题外话,因为问题在于他的自定义脚本不是全部来源,或者被其他脚本覆盖。我的回答是说如何知道来源的脚本以及来源的顺序。还要注意,这是一个很老的问题,我的观点不仅是要回答原始问题,而且要归纳好。
qeatzy

我没有说这是题外话,我说它没有回答这个问题。
DavidPostill

我确实回答了这个问题。通过:scr [iptname],您可以知道是否加载了脚本。如果已加载,覆盖它的候选对象是什么。请再次阅读问题。-可能安装了两个vim,并且它们的启动过程可能不同。
qeatzy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.