Najlepszy sposób, aby ustawić vim MacVima (konsola, a nie mvim) jako domyślny zamiast vima Mac OS X?


101

Zainstalowałem MacVima za pomocą homebrew. ( brew install macvim). Jeśli zadzwonię mvimz cmd, otwiera GUI MacVim.

Chciałbym vimwywołać Vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) MacVima zamiast /usr/bin/vimvima systemu ( ). Jaki jest najlepszy sposób, aby to zrobić? Wiem, że mogę, alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"ale nie wiem, czy to najlepsze podejście ...

EDYCJA : Chłopaki, dziękuję za wszystkie odpowiedzi, ale rzeczywiście, ponieważ już używam homebrew, używanie --override-system-vimjest eleganckim sposobem na osiągnięcie tego, czego potrzebuję.


Jaka jest różnica między vimem konsoli MacVim a zwykłym vimem w Terminalu?
hobbes3

2
@ hobbes3, vim dostarczany z osxem nie ma wkompilowanej obsługi ruby ​​lub pythona. Vim MacVima ma. Co jest konieczne, jeśli chcesz używać wtyczek takich jak Command-T
asgeo1

Vim, który jest dostarczany z OS X, również nie obsługuje tego cholernego schowka.
Thanatos

Odpowiedzi:


136

Wierzę, że tego właśnie szukasz:

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

Spowoduje to utworzenie dowiązań symbolicznych vim, vimdiff itp. Do mvim w / usr / local / bin / vim i tak długo, jak / usr / local / bin znajduje się przed / usr / bin w ŚCIEŻCE, otrzymasz wyniki, które „ szukam.

Wcześniejsze wersje naparu korzystały z --override-system-vimprzestarzałego przełącznika .


3
Ponieważ powiedziałem, że już używam homebrew, myślę, że to rzeczywiście najlepsza opcja: nie wiedziałem, że ta opcja jest możliwa. Dzięki!
Ktoś nadal cię używa MS-DOS

2
Technicznie jest to ukryty klejnot w formule vim, a nie sam homebrew. :)
kejadlen

Zastanawiam się, co jeśli zrobię napar, aby usunąć macvim, czy to usunie macvim i pozostawi oryginalny vim? Czy to też zniknie?
dniu

4
To najwyraźniej wymaga pełnego Xcode zainstalowanego za pośrednictwem sklepu z aplikacjami (a nie tylko narzędzi wiersza poleceń).
ScoBe

3
To już nie działa, ponieważ homebrew usunął wszystkie opcje formuł w przyszłości. discourse.brew.sh/t/…
Fadecomic


17

Możesz utworzyć alias w swoim ~/.bash_profilepliku, po prostu dodaj ten wiersz do tego pliku:

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

Właściwie tak alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim", ponieważ chcę połączyć się z vimem konsoli MacVima, a nie wersją GUI.
Ktoś nadal cię używa MS-DOS

Ach, w porządku. Naprawiony!
Wuffers,

Ponieważ vim jest aplikacją interaktywną, tworzenie aliasu zastępującego Vima systemu nie będzie tak szkodliwe, jak sądzę ...
Ktoś nadal używa ciebie MS-DOS

1
Dla mnie to było w / Aplikacje. Niezły alias!
user72923,

4

brew install macvim --override-system-vimjest przestarzałe. Zamiast tego powinieneś użyć brew install macvim --with-override-system-vim.


Nie działa.
JESii

3

Aby zmienić domyślny edytor systemu, dodaj następujący plik do .bash_profile

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

Zmiana tego ustawienia powinna umożliwić użycie MacVima jako domyślnego edytora (nawet w przypadku aplikacji, która automatycznie uruchamia edytor)

EDYCJA
Aby normalnie korzystać z terminala, nadal będziesz musiał użyć „mvim” do edycji pliku. Jeśli nadal chcesz wpisać „vi” na terminalu, sugerowałbym również dodanie aliasu do pliku .bash_profile.

EDYCJA 2
Po obejrzeniu edycji OP możesz dodać ścieżkę vima MacVima do ścieżki systemowej. Uwaga: Nie sądzę, że jest to najlepszy sposób, ponieważ może to również wpływać na inne wywołania systemowe podczas wykonywania połączeń na terminalu. Jeśli więc naprawdę chcesz, aby to się zmieniło, gdy wpiszesz w wierszu polecenia „vim”, to użycie aliasu uważam za najczystsze i najbezpieczniejsze .

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

Sprawdź swoje ustawienia za pomocą which vimterminala.


2
Nie chcę, aby mvim był domyślny. Chcę wywołać vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) MacVima, kiedy zapisuję vim na terminalu zamiast vim ( /usr/bin/vim) systemu.
Ktoś nadal cię używa MS-DOS

@ Ktoś nadal cię używa MS-DOS: Przepraszam, źle zrozumiałem twoją intencję (robi więcej, od czasu przeglądania twojej edycji).
Adam Lewis,

Hum, ale podsunąłeś mi pomysł: jeśli dowiązam vimdo /usr/local/bintego $PATHpodejścia i zastosuję to podejście, może się udać.
Ktoś nadal cię używa MS-DOS

@ Ktoś nadal cię używa MS-DOS: Uważaj na dowiązanie do katalogu, w którym jest już vim ... Może być trudno ustalić, który vim otrzymasz.
Adam Lewis,

1
:) Mój umysł przeskoczył do najgorszego przypadku (usunięto lokalne). Powinieneś być w porządku z użytkownikiem lokalnym.
Adam Lewis,

2

Edycja: wystarczy zainstalować homebrew (warte wysiłku!) I brew install vim

Moja stara odpowiedź jest poniżej:


Nie chcę instalować xcode tylko do tego, nie chcę też używać aliasów ani metody parzenia (która również wymaga xcode), więc robię to:

  1. Najpierw pobieram MacVima ze strony wydań ,
  2. Następnie instaluję MacVima, przeciągając go do mojego folderu Aplikacje,
  3. Do użytku z terminalem dostępna jest również aplikacja terminalowa w zipie, o nazwie mvimInstaluję ją, uruchamiając następujące polecenie:

    sudo mv mvim / usr / local / bin / vim

  4. Następnie zmieniam środowisko przez hash -r(lub zamykam i ponownie otwieram terminal).

  5. Wreszcie, kiedy uruchamiam vimz terminala, widzę zaktualizowany „w konsoli”.

Mam nadzieję, że to komuś pomoże.


Używam homebrew do wielu rzeczy. To jest warte wysiłku. Świetnie jest mieć zainstalowany XCode, ale mogę zainstalować wszystko, czego potrzebuję tylko przez telefon brew install.
Ktoś nadal cię używa MS-DOS

1

Moje dwa centy, uruchamiam to za każdym razem, gdy aktualizuję mój python poprzez homebrew.

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