vim không tải tệp _vimrc khi được khởi chạy từ git bash


13

Tôi đã tải xuống và cài đặt git cho windows (msysgit) và thường xuyên sử dụng git bash đi kèm. Bất cứ khi nào tôi chạy vim từ git bash, tệp _vimrc của tôi không được tải vì có tô sáng cú pháp hoặc bất cứ thứ gì. Khi tôi chạy cùng một lệnh để bắt đầu dạng vim với dòng lệnh trong windows (cmd) thay vì git bash, nó hoạt động như được mô tả trong tệp _vimrc của tôi. Tùy chỉnh duy nhất tôi đã thực hiện để git bash là thêm bash_profile sau vào 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

Có ai biết tại sao nó tải tệp _vimrc của tôi một cách chính xác khi vim được khởi chạy từ cmd và không chính xác khi khởi chạy từ git bash không?

Câu trả lời:


14

msysgit đi kèm với phiên bản riêng của vim.

Bạn có thể xác minh điều này bằng cách chạy

type vim

bên trong dấu nhắc git bash của bạn.

Tôi nghĩ rằng nó sẽ cho bạn biết rằng vim= /bin/vim, không /c/Program Files/Vim/Vim.exe.

Sau đó chạy

vim --version | grep vimrc

để xem tập tin cấu hình nào nó tìm kiếm.

Trên hệ thống của tôi, nó nói

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

$VIMchỉ vào C:\Program Files\Git\share\vim$HOMEchỉ vào c:\Users\USERNAME.

Tôi đoán tùy chọn tốt nhất của bạn là chạy phiên bản vim dựa trên Windows của bạn, vd

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

hoặc tương tự.

Hoặc bạn có thể chuyển phiên bản msysgit của vim sang một bên, vd

mv /bin/vim /bin/vim.disabled

Ý bạn là "msysgit đi kèm với phiên bản vim của riêng nó."?
Heptite

2
Lưu ý rằng bạn có thể phải chạy git bash với tư cách Quản trị viên để thực hiện dòng cuối cùng đó.
Kristo

Cảm ơn, nó hoạt động hoàn hảo. Tôi đã làm theo lệnh cuối cùng trong windows 8.1
Ibn Saeed

2

/bin/vim chỉ là một tập lệnh chuyển hướng, bạn có thể sửa đổi nó và đặt đường dẫn đến bất cứ điều gì bạn muốn.

Chỉnh sửa C:\Program Files (x86)\Git\bin\vimnhư một quản trị viên.

Thay đổi cai nay đi:

#!/bin/sh

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

Về điều này (hoặc bất kể con đường của bạn là gì):

#!/bin/sh

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

1

trong vim, gõ :scriptnames.

: Scr [iptnames] - Liệt kê tất cả các tên tập lệnh có nguồn gốc, theo thứ tự chúng được lấy nguồn đầu tiên. Số được sử dụng cho ID tập lệnh.


2
Xin vui lòng đọc lại câu hỏi một cách cẩn thận. Câu trả lời của bạn không trả lời câu hỏi ban đầu.
DavidPostill

@DavidPostill, IMHO, nó không lạc đề, vì vấn đề là tập lệnh tùy chỉnh của anh ấy không có nguồn gốc hoặc bị các tập lệnh khác ghi đè. Câu trả lời của tôi nói làm thế nào để biết tập lệnh nào có nguồn gốc và theo thứ tự thy có nguồn gốc. Cũng lưu ý rằng đó là một câu hỏi khá cũ, quan điểm của tôi không chỉ là trả lời câu hỏi ban đầu mà còn khái quát tốt.
qeatzy

Tôi không nói nó lạc đề, tôi nói nó không trả lời câu hỏi.
DavidPostill

Tôi đã trả lời câu hỏi. Bởi: Scr [iptname], bạn biết tập lệnh của mình đã được tải hay chưa. Nếu được tải, ứng cử viên nào sẽ ghi đè lên nó. Xin vui lòng đọc lại câu hỏi. - có thể có hai vim được cài đặt và quá trình khởi động của chúng có thể khác nhau.
qeatzy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.