vim lädt die _vimrc-Datei nicht, wenn sie von git bash gestartet wird

13

Ich habe git für Windows (msysgit) heruntergeladen und installiert und häufig die mitgelieferte git bash verwendet. Immer wenn ich vim von git bash aus starte, wird meine _vimrc-Datei nicht geladen, weil Syntaxhervorhebungen oder ähnliches vorhanden sind. Wenn ich den gleichen Befehl zum Starten von vim form in der Windows-Befehlszeile (cmd) anstelle von git bash ausführe, funktioniert dies wie in meiner _vimrc-Datei beschrieben. Die einzige Anpassung, die ich an git bash vorgenommen habe, ist das Hinzufügen des folgenden bash_profile zu C: \ Programme (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

Weiß jemand, warum es meine _vimrc-Datei korrekt lädt, wenn vim von cmd und falsch gestartet wird, wenn es von git bash gestartet wird?

Ben
quelle

Antworten:

14

msysgit enthält eine eigene Version von vim.

Sie können dies überprüfen, indem Sie ausführen

type vim

innerhalb Ihrer Git-Bash-Eingabeaufforderung.

Ich denke , es wird Ihnen sagen, dass vim= /bin/vimnicht /c/Program Files/Vim/Vim.exe.

Dann renne

vim --version | grep vimrc

um zu sehen, nach welchen Konfigurationsdateien es sucht.

Auf meinem System heißt es

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

$VIMzeigt auf C:\Program Files\Git\share\vimund $HOMEzeigt auf c:\Users\USERNAME.

Ich schätze, Sie können am besten Ihre Windows-basierte Version von vim ausführen, z

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

o.ä.

Oder Sie könnten die msysgit-Version von vim beiseite legen, z

mv /bin/vim /bin/vim.disabled
Mikel
quelle
Meinten Sie "msysgit kommt mit einer eigenen Version von vim."?
Heptite
2
Beachten Sie, dass Sie möglicherweise git bash als Administrator ausführen müssen, um diese letzte Zeile auszuführen.
Kristo
Danke, es funktioniert einwandfrei. Ich folgte dem letzten Befehl in Windows 8.1
Ibn Saeed
2

/bin/vim ist nur ein Umleitungsskript, Sie können es ändern und den Pfad nach Belieben festlegen.

C:\Program Files (x86)\Git\bin\vimAls Administrator bearbeiten .

Ändere das:

#!/bin/sh

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

Dazu (oder was auch immer Ihr Weg ist):

#!/bin/sh

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

in vim tippe :scriptnames.

: scr [iptnames] - Listet alle Skriptnamen in der Reihenfolge auf, in der sie zuerst bezogen wurden. Die Nummer wird für die Skript-ID verwendet.

qeatzy
quelle
2
Bitte lesen Sie die Frage noch einmal sorgfältig durch. Ihre Antwort beantwortet nicht die ursprüngliche Frage.
DavidPostill
@DavidPostill, IMHO, es ist kein Thema, da das Problem darin besteht, dass sein angepasstes Skript nicht alle Quellen enthält oder von anderen Skripten überschrieben wird. Meine Antwort sagt, wie man weiß, welche Skripte bezogen werden und in welcher Reihenfolge Ihre bezogen werden. Beachten Sie auch, dass es eine ziemlich alte Frage ist. Es geht nicht nur darum, die ursprüngliche Frage zu beantworten, sondern auch gut zu verallgemeinern.
Qeatzy
Ich sagte nicht, dass es nicht zum Thema gehörte, sondern dass es die Frage nicht beantwortete.
DavidPostill
Ich habe die Frage beantwortet. Von: scr [iptname], Sie wissen, dass Ihr Skript jemals geladen wurde oder nicht. Wenn geladen, welcher Kandidat überschreibt dies? Bitte lesen Sie die Frage noch einmal. - Möglicherweise sind zwei vim installiert, und der Startvorgang kann unterschiedlich sein.
Qeatzy