Cách tốt nhất để biến vim của MacVim (bảng điều khiển, không phải mvim) thành mặc định thay vì vim của Mac OS X?


101

Tôi đã cài đặt MacVim bằng homebrew. ( brew install macvim). Nếu tôi gọi mvimtừ cmd, nó sẽ mở GUI MacVim.

Tôi muốn thực hiện vimcuộc gọi MacVim's Vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) thay vì /usr/bin/vimvim của hệ thống . Đó là cách tốt nhất để làm điều đó? Tôi biết tôi có thể làm alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"nhưng tôi không biết liệu đó có phải là cách tiếp cận tốt nhất ...

EDIT : Các bạn, cảm ơn vì tất cả các câu trả lời của bạn, nhưng thực sự, vì tôi đã sử dụng homebrew, sử dụng --override-system-vimlà cách thanh lịch để thực hiện những gì tôi cần.


Sự khác biệt giữa vim console MacVim và vim thông thường trong Terminal là gì?
hobbes3

2
@ hobbes3, vim mà tàu có osx không có hỗ trợ ruby ​​hoặc python được biên dịch. MacVim's vim hiện. Điều này là cần thiết nếu bạn muốn sử dụng các plugin như Command-T
asgeo1

Các vim đi kèm với OS X cũng không hỗ trợ clipboard của freakin.
Thanatos

Câu trả lời:


136

Tôi tin rằng đây là những gì bạn đang tìm kiếm:

brew install macvim --with-override-system-vim

Điều này sẽ tạo ra các liên kết vim, vimdiff, v.v. Đang tìm kiếm.

Các phiên bản trước đó của brew đã sử dụng công tắc --override-system-vimkhông dùng nữa.


3
Vì tôi đã nói rằng tôi đã sử dụng homebrew, tôi nghĩ rằng đây thực sự là lựa chọn tốt nhất: tôi không biết tùy chọn này là có thể. Cảm ơn!
Ai đó vẫn sử dụng bạn MS-DOS

2
Về mặt kỹ thuật, đây là một viên ngọc ẩn trong công thức vim, chứ không phải là homebrew. :)
kejadlen

Tôi tự hỏi, nếu tôi làm một loại bỏ macvim, điều đó sẽ loại bỏ macvim và để lại vim ban đầu? Hay điều đó cũng sẽ biến mất?
seds

4
Điều này rõ ràng cần Xcode đầy đủ được cài đặt thông qua cửa hàng ứng dụng (và không chỉ các công cụ dòng lệnh).
ScoBe

3
Điều này không còn hoạt động, bởi vì homebrew đã loại bỏ tất cả các tùy chọn công thức trong tương lai. discourse.brew.sh/t/...
Fadecomic


17

Bạn có thể tạo bí danh trong ~/.bash_profile, chỉ cần thêm dòng này vào tệp đó:

alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"

Trên thực tế, đó là alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"vì tôi muốn liên kết với vim console của MacVim chứ không phải phiên bản gui.
Ai đó vẫn sử dụng bạn MS-DOS

À, được rồi. Đã sửa!
Wuffers

Vì vim là một ứng dụng tương tác, nên thực hiện một bí danh ghi đè lên Vim của Hệ thống sẽ không gây hại, tôi đoán ...
Ai đó vẫn sử dụng bạn MS-DOS

1
Đối với tôi đây là trong / Ứng dụng. Bí danh tốt đẹp!
dùng72923

4

brew install macvim --override-system-vimbị phản đối Bạn nên sử dụng brew install macvim --with-override-system-vimthay thế.


Công việc ngắn hạn.
JESii

3

Để thay đổi trình chỉnh sửa mặc định của hệ thống, hãy thêm đoạn sau vào .bash_profile của bạn

export EDITOR=/usr/local/Cellar/macvim/<version>/bin/mvim 

Thay đổi điều này sẽ cho phép bạn sử dụng MacVim cho trình chỉnh sửa mặc định (ngay cả đối với ứng dụng tự động chỉnh sửa trình chỉnh sửa)

EDIT
Để sử dụng bình thường tại thiết bị đầu cuối, bạn vẫn sẽ phải sử dụng 'mvim' để chỉnh sửa tệp. Nếu bạn vẫn muốn nhập 'vi' trên thiết bị đầu cuối, tôi cũng khuyên bạn nên thêm bí danh vào .bash_profile.

EDIT 2
Sau khi xem chỉnh sửa của OP, bạn có thể thêm đường dẫn vim của MacVim vào đường dẫn hệ thống. Lưu ý Tôi không nghĩ rằng đây là cách tốt nhất vì nó cũng có thể ảnh hưởng đến các cuộc gọi hệ thống khác trong khi thực hiện cuộc gọi tại thiết bị đầu cuối. Vì vậy, nếu bạn thực sự chỉ muốn nó thay đổi khi bạn gõ 'vim' vào dòng lệnh thì việc sử dụng bí danh tôi tin là điều sạch nhất và an toàn nhất để làm.

PATH="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim:${PATH}"
export PATH

Kiểm tra cài đặt của bạn bằng cách sử dụng which vimtại thiết bị đầu cuối.


2
Tôi không muốn làm cho mvim mặc định. Tôi muốn gọi vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) của MacVim khi tôi viết vim trên thiết bị đầu cuối thay vì vim ( /usr/bin/vim) của hệ thống .
Ai đó vẫn sử dụng bạn MS-DOS

@Som somebody vẫn sử dụng bạn MS-DOS: Xin lỗi về điều đó, hiểu sai ý định của bạn (kiếm thêm một chút kể từ khi xem chỉnh sửa của bạn).
Adam Lewis

Hum, nhưng bạn đã cho tôi một ý tưởng: nếu tôi liên kết mềm vimđến /usr/local/binvà sử dụng $PATHcách tiếp cận, nó có thể làm việc.
Ai đó vẫn sử dụng bạn MS-DOS

@Som somebody vẫn sử dụng bạn MS-DOS: Hãy cẩn thận liên kết với một thư mục đã có vim trong đó ... Có thể trở nên khó khăn để biết bạn sẽ nhận được vim nào.
Adam Lewis

1
:) Tâm trí tôi nhảy vào trường hợp xấu nhất (loại bỏ cục bộ). Bạn sẽ ổn với người dùng địa phương.
Adam Lewis

2

Chỉnh sửa: chỉ cần cài đặt homebrew (đáng rắc rối!) Và brew install vim

Câu trả lời cũ của tôi là dưới đây:


Tôi không muốn cài đặt xcode chỉ cho việc này, tôi cũng không muốn sử dụng bí danh hoặc phương thức ủ (cũng yêu cầu xcode) vì vậy tôi làm điều này:

  1. Lần đầu tiên tôi tải xuống MacVim từ trang phát hành ,
  2. Sau đó, tôi cài đặt MacVim bằng cách kéo nó vào thư mục Ứng dụng của mình,
  3. Để sử dụng thiết bị đầu cuối, cũng có một ứng dụng đầu cuối trong zip, được gọi mvim, tôi cài đặt nó bằng cách chạy lệnh này:

    sudo mv mvim / usr / local / bin / vim

  4. Và sau đó, tôi làm lại môi trường bằng cách hash -r(hoặc đóng và mở lại thiết bị đầu cuối).

  5. Cuối cùng, khi tôi chạy vimtừ thiết bị đầu cuối của mình, tôi thấy một bản cập nhật "trong bảng điều khiển".

Tôi hi vọng điêu nay se giup được ai đo.


Tôi sử dụng homebrew cho rất nhiều thứ. Đó là giá trị rắc rối. Có XCode được cài đặt nhưng có thể cài đặt tất cả những gì tôi cần chỉ bằng cách gọi brew installlà tuyệt vời.
Ai đó vẫn sử dụng bạn MS-DOS

1

Hai xu của tôi, tôi chạy nó bất cứ khi nào nâng cấp con trăn của tôi thông qua homebrew.

brew reinstall vim --HEAD --with-cscope --with-lua --override-system-vim
brew reinstall macvim --HEAD --with-cscope --with-lua --override-system-vim
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.