2015-10-24 15 views
8

Tôi thấy điều gì đó rất kỳ quặc, và thành thực mà nói là tôi bị bối rối.Vim của Apple luôn được sử dụng thay vì homebrew

Phiên bản vim đi kèm với mac đã lỗi thời (7.3 thay vì 7.4). Tôi đang cố gắng cài đặt vim từ homebrew, và tôi muốn sử dụng nó thay vì phiên bản Apple mặc định.

Tôi chạy "brew install vim". Nó được cài đặt chính xác trong /usr/local/bin/vim. Tất cả đều tốt.

Khi tôi chạy "which vim", nó sẽ in "/usr/local/bin/vim". Phiên bản vim của Apple được cài đặt tại /usr/bin/vim. Vì vậy, lệnh đó nói với tôi rằng tôi đang sử dụng phiên bản homebrew của vim.

Tuy nhiên, khi tôi thực sự chạy vim, nó vẫn chạy phiên bản của Apple

$ vim --version 
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 9 2015 23:58:42) 
Compiled by [email protected] 
... 

Nếu tôi chạy phiên bản homebrew một cách rõ ràng, tôi thấy điều này:

$ /usr/local/bin/vim --version 
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 23 2015 18:16:35) 
MacOS X (unix) version 
Included patches: 1-898 
Compiled by Homebrew 
... 

Tôi thậm chí đã cố gắng di chuyển /usr/bin/vim để /usr/bin/vim73 để cố gắng sử dụng phiên bản homebrew. Tuy nhiên, khi tôi đã làm điều này, đây là những gì tôi thấy khi tôi cố gắng chạy vim:

$ vim --version 
-bash: /usr/bin/vim: No such file or directory 
$ 

Điều gì đang xảy ra? Làm thế nào tôi có thể làm cho nó chạy phiên bản homebrew của vim?

+0

Bạn có bí danh không? Sử dụng 'type' thay cho' which' để kiểm tra. Trong bash 'which' không phải là nội trang hệ vỏ, nhưng' type' là. – janm

+0

Vấn đề rõ ràng khác là bảng băm nếu bạn chưa khởi động lại trình bao của mình: 'hash -l' hiển thị nội dung của bảng băm trong bash. – janm

+0

Ah cảm ơn! Khi tôi gõ "loại vim", tôi thấy "vim được băm (/ usr/bin/vim)". Khi tôi gõ "hash -l", tôi thấy vim trong danh sách. – kgreenek

Trả lời

15

Bắt đầu một phiên vỏ mới và nó sẽ làm việc.

Bash lưu trữ đường dẫn của tệp thi hành để khi bạn chạy vim, hãy xem PATH để tìm tệp thi hành đầu tiên có tên này. Nó lưu trữ nó và lần thứ hai bạn chạy vim nó ghi nhớ vim thực sự là /usr/bin/vim và chạy điều đó.

Vì bạn chưa khởi động lại phiên Bash của mình, bộ nhớ cache của nó vẫn giữ nguyên; do đó lỗi bạn đang thấy. Nó không liên quan gì đến cách bạn cài đặt vim.

+0

Điều này giải quyết nó cho tôi. Cảm ơn @bfontaine - bạn là MVP thực sự. – jhliberty

+0

Hoàn hảo. Chính xác những gì tôi cần để sửa vim + clipboard của tôi trên OSX! – Dan

2

Bạn quên một cuộc tranh cãi:

$ brew install vim --override-system-vi 
+0

Tùy chọn này không tồn tại. – bfontaine

+0

@bfontaine, có: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/vim.rb#L14. Xin lỗi vì lỗi đánh máy. – romainl

+0

Tôi không nghĩ rằng nó không làm những gì bạn nghĩ. '--override-system-vi' làm cho công thức cài đặt một nhị phân' vi' là một liên kết tượng trưng đến 'vim'. Về mặt kỹ thuật, nó không ghi đè bất cứ điều gì; chúng ta nên đổi tên nó: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/vim.rb # L99 – bfontaine

Các vấn đề liên quan