vim nie ładuje pliku _vimrc po uruchomieniu z git bash


13

Pobrałem i zainstalowałem git dla Windows (msysgit) i często korzystałem z dołączonej git bash. Ilekroć uruchamiam vim z git bash, mój plik _vimrc nie jest ładowany, ponieważ występuje podświetlanie składni lub cokolwiek innego. Kiedy uruchamiam to samo polecenie, aby uruchomić formularz vim w wierszu poleceń systemu Windows (cmd) zamiast git bash, działa to tak, jak opisano w moim pliku _vimrc. Jedyne dostosowanie, jakie zrobiłem, aby git bash, to dodać następujący profil bash do 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

Czy ktoś wie, dlaczego ładuje mój plik _vimrc poprawnie, gdy vim jest uruchamiany z cmd i niepoprawnie, gdy jest uruchamiany z git bash?

Odpowiedzi:


14

msysgit ma własną wersję vima.

Możesz to sprawdzić, uruchamiając

type vim

wewnątrz wiersza polecenia git bash.

Myślę, że powie ci to, że vim= /bin/vimnie /c/Program Files/Vim/Vim.exe.

Następnie uruchomić

vim --version | grep vimrc

aby zobaczyć, których plików konfiguracyjnych szuka.

Mówi w moim systemie

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

$VIMwskazuje C:\Program Files\Git\share\vimi $HOMEwskazuje na c:\Users\USERNAME.

Myślę, że najlepszą opcją jest uruchomienie vimowej wersji systemu Windows, np

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

lub podobne.

Lub możesz przenieść wersję vys msysgit na bok, np

mv /bin/vim /bin/vim.disabled

Miałeś na myśli „msysgit ma własną wersję vima.”?
Heptyt

2
Zauważ, że być może będziesz musiał uruchomić git bash jako Administrator, aby zrobić ostatnią linię.
Kristo

Dzięki, działa idealnie. Postępowałem zgodnie z ostatnim poleceniem w Windows 8.1
Ibn Saeed

2

/bin/vim jest tylko skryptem przekierowującym, możesz go zmodyfikować i ustawić ścieżkę na dowolną.

Edytuj C:\Program Files (x86)\Git\bin\vimjako administrator.

Zmień to:

#!/bin/sh

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

Do tego (lub cokolwiek jest twoja ścieżka):

#!/bin/sh

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

1

w vimie wpisz :scriptnames.

: scr [iptnames] - Wyświetla listę wszystkich nazw skryptów w kolejności, w jakiej zostały pozyskane. Liczba jest używana jako identyfikator skryptu.


2
Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie.
DavidPostill

@DavidPostill, IMHO, nie jest to nie na temat, ponieważ problem polega na tym, że jego spersonalizowany skrypt nie pochodzi ze wszystkich źródeł lub nie jest nadpisywany przez inne skrypty. Moja odpowiedź mówi, jak wiedzieć, które skrypty są pozyskiwane i w jakiej kolejności są one pozyskiwane. Zauważ też, że jest to dość stare pytanie, moim celem jest nie tylko udzielenie odpowiedzi na pierwotne pytanie, ale również uogólnienie.
qeatzy

Nie powiedziałem, że to nie na temat, powiedziałem, że nie odpowiada na pytanie.
DavidPostill

Odpowiedziałem na pytanie. Autor: scr [iptname], wiesz, że Twój skrypt jest zawsze ładowany, czy nie. Jeśli zostanie załadowany, jaki kandydat go zastąpi. Przeczytaj ponownie pytanie. - mogą być zainstalowane dwa vima, a ich proces uruchamiania może być inny.
qeatzy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.