Jaka jest różnica między MacVimem a zwykłym Vimem?

216

Jestem dość nowy w OS X, ale znam Vima z używania go w różnych systemach * nix. Widziałem wiele osób, które zalecają uruchamianie MacVima nad Vimem w terminalu. Czy ktoś może mi powiedzieć, jakie są różnice między MacVimem a zwykłym Vimem?

Mark Costello
źródło
2
Prawdopodobnie ma to związek z przyjaznymi dla Maca skrótami klawiszowymi (ctrl vs klawisze poleceń)
ldog

Odpowiedzi:

214

MacVim to tylko Vim. Wszystko, co robisz w Vimie, będzie działało dokładnie tak samo w MacVimie.

MacVim jest bardziej zintegrowany z całym systemem operacyjnym niż Vim w terminalu, a nawet GVim w systemie Linux, jest zgodny z wieloma konwencjami systemu Mac OS X.

Jeśli pracujesz głównie z aplikacjami GUI ( na przykład YummyFTP + GitX + Charles ), możesz preferować MacVim.

Jeśli pracujesz głównie z aplikacjami CLI (na przykład ssh + svn + tcpdump), możesz preferować vima w terminalu.

Wejście i wyjście z jednej dziedziny (CLI) dla drugiej (GUI) i odwrotnie może być „drogie”.

Używam zarówno MacVima, jak i Vima, w zależności od zadania i kontekstu: jeśli jestem w środowisku CLI, po prostu vim filenamenapiszę, a jeśli będę w środowisku GUI, po prostu wywołam Quicksilver i uruchomię MacVima.

Po przejściu z TextMate podoba mi się to, że MacVim obsługuje prawie wszystkie zwykłe skróty, do których przywykli użytkownicy komputerów Mac. Dodałem trochę własnego, naśladującego TextMate, ale ponieważ pracowałem w wielu środowiskach, zmusiłem się do nauki vim. Teraz używam zarówno MacVima, jak i Vima prawie dokładnie w ten sam sposób. Używanie jednego lub drugiego jest dla mnie tylko kwestią kontekstu.

Ponadto, jak powiedział El Isra, domyślny vim (CLI) w OS X jest nieco przestarzały. Możesz zainstalować aktualną wersję za pośrednictwem MacPorts lub możesz zainstalować MacVim i dodać alias do .profile:

alias vim='/path/to/MacVim.app/Contents/MacOS/Vim'

mieć ten sam vim w MacVim i Terminal.app.

Kolejna różnica polega na tym, że wiele świetnych schematów kolorów działa od razu w MacVimie, ale wygląda okropnie w Terminal.app, który obsługuje tylko 8 kolorów (+ podświetlenia), ale możesz użyć iTerm - który można skonfigurować tak, aby obsługiwał 256 kolorów - zamiast tego terminala.

Więc… zasadniczo moja rada to po prostu korzystać z obu.

EDYCJA: Nie próbowałem, ale najnowsza wersja Terminal.app (w wersji 10.7) powinna obsługiwać 256 kolorów. Nadal pracuję w wersji 10.6.x, więc jeszcze przez jakiś czas będę korzystać z iTerm2.

EDYCJA: Jeszcze lepszym sposobem korzystania z wykonywalnego interfejsu CLI MacVima w powłoce jest przeniesienie mvimskryptu dołączonego do MacVima gdzieś w twoim systemie $PATHi użycie tego polecenia:

$ mvim -v

EDYCJA: Tak, Terminal.app obsługuje teraz 256 kolorów. Jeśli więc nie potrzebujesz zaawansowanych funkcji iTerm2, możesz bezpiecznie użyć domyślnego emulatora terminala.

romainl
źródło
82
Homebrew to bezbolesny menedżer pakietów w porównaniu do Macports, gdy homebrew jest zainstalowany brew install macvimi gotowy . mxcl.github.com/homebrew
Greg K
3
+1 dla homebrew. Miałem dużo więcej szczęścia z naparami niż z Macports. Chociaż Macports wciąż ma więcej pakietów niż Homebrew.
Chev
2
@Greg, jak Macports jest trudniejszy sudo port install macvim
pellucide
1
@ pelellde Oczywiście, instalacja jednego pakietu nie jest już bardziej bolesna. Jednak zarządzanie zależnościami i pakietami domyślnymi systemu operacyjnego w porównaniu z zainstalowanymi pakietami jest znacznie łatwiejsze w Homebrew. Również sudonigdy nie jest wymagany w homebrew.
Roy Tinker,
12

Jedyny powód, który sprawił, że warto było przejść na MacVim: Yank korzysta ze schowka systemowego.

W końcu mogę skopiować wklej pomiędzy MacVimem na moim terminalu a resztą moich aplikacji.

Janac Meena
źródło
13
Możesz także użyć *rejestru w terminalu VIM, aby szarpnąć do schowka systemowego. Który IMO jest lepszy, ponieważ osobiście nie zawsze chcę synchronizować z moim schowkiem systemowym. Tak więc w VIM, na przykład podczas przeciągania linii, użyj, "*yyaby skopiować do schowka.
Luke Davis
1
vim.wikia.com/wiki/Accessing_the_system_clipboard - wszystko, co musisz zrobić, to dodać linię do swojego .vimrc, aby to również było domyślne
Jim Deville
1
Jeśli chcesz zaciągnąć się do schowka w terminalu vim, po prostu dodaj +, na przykład, jeśli chcesz skopiować całą zawartość do schowka:%y+
smallwat3r
3

niestety, z „mvim -v”, ALT plus okna strzałek nadal nie działają. Nie znalazłem żadnego sposobu, aby to włączyć :-(

Daniel Pinyol
źródło
Dzięki za mvimpolecenie, zainstalowałem MacVima przez HomeBrew, ale nie wiedziałem, że istnieje domyślne polecenie z dowiązaniem symbolicznym. Dzięki!
Roy Tinker,
1

Chodzi o kluczowe powiązania, które można po prostu uzyskać z konfiguracji .vimrc. Jeśli chodzi o schowek, możesz użyć, :set clipboard unnameda szarpnięcie z vima przejdzie do schowka systemowego. W każdym razie, bez względu na to, z którego ostatecznie skorzystasz, sugeruję użycie tej konfiguracji vimrc , zawiera ona wiele wtyczek i powiązań, które sprawią, że twoje wrażenia będą płynne.

Manish Baghel
źródło