Co to jest Neovim? Czym różni się od Vima? Dlaczego mam się tym przejmować?


118

Słyszałem o Neovimie ; czym różni się od Vima? Wszystkie punkty na stronie głównej to tylko zmiany architektoniczne „pod maską”. Jako użytkownik, jaka jest dla mnie różnica?


1
Funkcja asynchroniczna to funkcja ratująca życie. To sprawia, że ​​vim jest o wiele bardziej płynny i wiele wtyczek może z niego skorzystać.
tommyip

Nauczyciel jest ulepszony. Wygląda inaczej.
Fernando Rodriguez

„Ładna strona internetowa, to jedna rzecz, którą Neovim zrobił dobrze”. - Bram Moolenaar z wywiadu
Michael

Niektóre podstawowe opcje wydają się dziwne i nieistotne dla głównych celów ... Wiele z nich wydaje się być kimś, kto nie lubi starego kodu i chce zrobić to „dobrze”. Zgadzam się, że stary kod jest brzydki. Ale wdrożenie nowej implementacji będzie wymagało ogromnego wysiłku. To bardzo podobne do tego, co stało się z Elvisem: przepisanie go sprawi, że będzie znacznie lepsze, ale zajęło to tak dużo czasu, podczas którego Vim dodał więcej funkcji, że w końcu nie ma tak wielu użytkowników Elvisa. Przepisany Elvis może mieć ładny kod, ale użytkownicy tego nie zauważają. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Mam nadzieję, że fajne rzeczy, które wymyśli NeoVim, zostaną dodane do Vima. To znaczy, kto nie chce lepszej obsługi wtyczek, lepszego GUI i osadzania? Najważniejsze pytanie brzmi: jak to zrobić i kto zamierza to odpowiednio wdrożyć. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Odpowiedzi:


81

Tak jak opisuje strona główna neovim, celem neovim jest utorowanie drogi dla lepszego i bardziej otwartego projektu społecznościowego opartego na otwartym kodzie źródłowym.

Zmiany architektoniczne nie tylko przyniosą większą stabilność i poprawią wydajność vima, ale sprawią, że kod będzie łatwiejszy w utrzymaniu i nieznacznie zmniejszy barierę wejścia dla każdego, kto jest zainteresowany.

Jedna z kluczowych zmian obejmuje również podstawową funkcję dostępu do wykonywania zadań / zadań asynchronicznie w vimie, która od dawna jest jedną z najbardziej pożądanych funkcji vim. Może to pomóc jeszcze bardziej poprawić wydajność vima, zwłaszcza że vim nie będzie musiał blokować się, gdy zadanie w tle coś robi.

Jako użytkownik vima niewiele może się zmienić, poza tym, że neovim powinien rozwijać się jako oprogramowanie znacznie szybciej (naprawiać problemy, dodawać funkcje) w porównaniu do standardowego vima i że na dłuższą metę będzie miał znacznie lepszą wydajność.


24
+1. Dodaję również, że fakt, że będzie bardzo niewiele zmian widocznych dla użytkownika, jest dobrą rzeczą.
carlosdc

27
To brzmi jak powtórzenie komunikatu prasowego, a nie faktyczne podsumowanie, dlaczego ktoś powinien się tym przejmować. Na przykład używam vima od dwóch dekad i nie pamiętam, kiedy ostatni program pokazał mi jakąkolwiek niestabilność, więc dlaczego miałbym przejmować się „bardziej stabilną”?
Caleb

2
Zadania asynchroniczne nie powinny już oznaczać blokowania interfejsu vima do wykonywania zadań, które mogą znajdować się w tle.
alxndr

3
Czy istnieją jakieś dowody na to , że w ciągu ostatnich dwóch lat neovim był aktywny, że rośnie szybciej i ma lepszą wydajność?
Sparhawk

8
Nie jest już prawdą, że Vim nie obsługuje asynchronicznego uruchamiania zadań w tle.
Bogaty

35

Zwracam się konkretnie do:

Dlaczego miałoby mnie to obchodzić? Jako użytkownik, jaka jest dla mnie różnica?

Najbardziej ekscytujące mnie jako użytkownika Vima są nowe rodzaje wtyczek, integracji i interfejsów, które zostaną włączone przez zmiany pod maską Neovima.

Z biegiem czasu zaczniesz widzieć naprawdę imponujące wtyczki i programy, które działają z Neovimem, ale nie z Vimem. Istnieje lista wtyczek specyficznych dla Neovim: tutaj w githubie neovim .

Nie wiem, jak to jest aktualne, ale cieszę się, że rośnie, gdy otrzymujemy więcej narzędzi, dzięki którym kodowanie jest wydajniejsze i przyjemniejsze.


15

Moim ulubionym dodatkiem, który Neovim wprowadza do stołu, jest tryb terminalowy. Możesz teraz podzielić okno Neovim i emulować terminal po jednej stronie, a edytować plik po drugiej stronie! Podejrzewam, że mógłbyś teraz nawet uruchomić Neovim w sobie, na wypadek, gdybyś naprawdę chciał to zrobić.

Posiadanie wtyczek asynchronicznych również będzie wkrótce bardzo przydatne; oznacza to, że w końcu jesteśmy w stanie naprawdę dobrze uzupełnić kod, po zaledwie 40 latach oczekiwania!

Neovim ma również lepszą obsługę myszy niż Vim.


2
Powinni to nazwać Metavim: P
Tumbler41

Nie znam żadnych zmian specyficznych dla myszy, które wprowadziłby Neovim, co uczyniłoby go lepszym niż Vim.
jamessan

Teraz przychodzi mi na myśl, że możesz być w terminalowej sesji ssh, otworzyć Neovim i kliknąć miejsce, aby je edytować. Nie sądzę, żeby Vim mógł to zrobić, choć możliwe, że nie mam jeszcze wystarczająco dużego pliku .vimrc! Sądzę jednak, że lepiej to nazwać wsparciem ssh niż wsparciem myszy.
Johnathan Andersen

Zdecydowanie możliwe jest używanie myszy w Vimie przez połączenie SSH (właśnie próbowałem), ale jeśli nie udało ci się uruchomić go w Vimie i działa domyślnie w NeoVim, to myślę, że jest to punkt danych na korzyść twojego stwierdzenia, że obsługa w NeoVim jest lepsza;).
Rich

1
Używam myszy w zwykłym Vimie nad SSH od Putty działającego w systemie Windows z pojedynczą set mouse=alinią w vimrc od dłuższego czasu
Thunderbeef

5

Dwa punkty, które nie zostały jeszcze uwzględnione przez inne odpowiedzi i mogą być interesujące dla użytkownika, a nawet nowych użytkowników bez (lub z małym) pliku konfiguracyjnego:

  1. NeoVim nie nie starają się być Vi kompatybilny domyślnie. Zmienili wiele domyślnych wartości ustawień i aktywnie omawiają takie zmiany: # 2676 , # 6289
  2. Może być osadzony w innym procesie (pamiętasz integrację Netbeans ?) I ma wiele różnych GUI, więc MacVim nie jest już najbardziej fantazyjnym GUI, jaki możesz znaleźć dla swojego $EDITOR.
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.