Vim Brama Moolenaara jest wysoce konfigurowalnym, kierowanym przez społeczność edytorem tekstu, który jest kochany przez programistów od wieków. Ale konwencjonalna mądrość mówi, że Vim ma stromą krzywą uczenia się i ma swój sprawiedliwy udział w niedoskonałościach. Aby przezwyciężyć problemy związane z Vimem, powstał Neovim, który rozszerza podstawowe funkcje Vima i jest przeznaczony dla użytkowników, którzy chcą jak najlepiej wykorzystać możliwości Vima. Porównujemy te dwa edytory tekstu ze sobą, aby zobaczyć, który z nich jest lepszy od drugiego.

Czym jest Vim?

Vim jest potężnym, wysoce konfigurowalnym edytorem tekstu dla systemów Unix i bogatszą w funkcje wersją oryginalnego edytora tekstu vi, stąd nazwa „Vi IMproved”. Vim jest darmowym, otwartym edytorem tekstu, stworzonym do pisania notatek, przypomnień, e-maili itp. Vim zapewnia wiele sposobów na wykonanie każdego zadania i można zrobić prawie wszystko za pomocą klawiatury, a na dodatek wszystko robi znacznie szybciej. Vim, podobnie jak klasyczny Vi, jest edytorem zorientowanym na ekran, zaprojektowanym tak, aby edycja tekstu była wygodniejsza i wydajniejsza niż kiedykolwiek. Chociaż, głównie używany do edycji plików kodu źródłowego, Vim jest świetny do pisania kodu i utrzymywania plików konfiguracyjnych, i można zrobić o wiele więcej z mniejszą ilością naciśnięć klawiszy. Jest bardzo zaawansowany, pozwalając użytkownikom na pisanie własnych skryptów (Scripting) – funkcja wydana wraz z piątą iteracją Vima rozszerza jego funkcjonalność. Vim działa w dwóch trybach: Tryb poleceń i Tryb wprowadzania danych.

Co to jest Neovim?





Neovim jest projektem open source prowadzonym przez społeczność i rozwidloną wersją edytora tekstu Vim, zbudowaną w celu ułatwienia utrzymania Vima dla jego głównych deweloperów. Jest to rozszerzona wersja edytora Vim lub można powiedzieć, że jest to bardziej uproszczony Vim, który sprawia, że integracja jest znacznie łatwiejsza niż w przypadku Vima. Vim jest już najbardziej lubianym edytorem tekstu i najczęściej wybieranym przez programistów. Pomyśl o Neovimie jako o edytorze Vim następnej generacji, zaprojektowanym w celu rozwiązania niektórych podstawowych problemów z jego poprzednikiem. Po pierwsze, pisanie wtyczek było dość trudne, a Vim nie jest zbyt dobrze zoptymalizowany dla nowoczesnych systemów. Tak więc, Neovim rozwiązuje problemy, które miałeś z Vimem. Neovim czyni z Vima to co najlepsze z całkowicie przeprojektowaną architekturą wtyczek, lepszym ekosystemem GUI, pierwszorzędnym wsparciem dla osadzania i nie tylko.

Różnica między Vimem a Neovimem

Terminologia

– Vim, skrót od „Vi IMproved”, jest potężniejszą, ulepszoną wersją klasycznego edytora tekstu vi, zbudowaną w celu podniesienia poziomu edycji tekstu. Jest to wyrafinowany edytor tekstu, który jest idealny do edycji plików kodu źródłowego, utrzymywania plików konfiguracyjnych i wielu innych. Neovim, z drugiej strony, jest całkowicie odświeżoną wersją Vima, zbudowaną w celu ułatwienia jego obsługi przez głównych deweloperów. Neovim jest dla użytkowników, którzy chcą jak najlepiej wykorzystać Vima, jednocześnie pracując z jego podstawowymi funkcjami.

Katalog



– Oba programy stosują różne konwencje dotyczące miejsca przechowywania plików konfiguracyjnych. Vim lubi przechowywać bieżące pliki użytkownika w katalogu ~/.vim/, a pliki konfiguracyjne specyficzne dla użytkownika w katalogu domowym ~/.vimrc. Twój katalog domowy jest określony przez $HOME. Neovim, z drugiej strony, stosuje się do specyfikacji katalogu podstawowego XDG i przechowuje wszystkie swoje pliki konfiguracyjne w katalogu ~/.config. Konfiguracja Neovima jest przechowywana wewnątrz katalogu ~/.config/nvim.

System wtyczek

– Pod wieloma względami Vim i Neovim są wymienne, ale jednym obszarem, w którym Neovim znacząco przewyższa Vima, jest zarządzanie wtyczkami. API wtyczek Vima jest restrykcyjne i uciążliwe. Neovim jest kompletną przeróbką edytora tekstu Vim z całkowicie przeprojektowaną, a zarazem wyrafinowaną architekturą wtyczek, która posiada bardziej rozbudowane wtyczki niż dotychczas. Dodatkowo, zdalna architektura wtyczek w Neovimie umożliwia rozszerzenie funkcjonalności edytora poprzez wykonywanie zdalnych wywołań procedur (RPC) za pomocą dowolnego języka programowania, i to działających asynchronicznie. Większość wtyczek napisanych dla Vima działa również w Neovimie.



Architektura GUI

– Vim używa środowiska powłoki terminala do zadań edycji tekstu, bez graficznego interfejsu użytkownika (GUI); zamiast tego, Vim ma tekstowy interfejs użytkownika (lub TUI). Jeśli czujesz się komfortowo pracując z wierszem poleceń przez cały dzień, Vim czuje się tak samo naturalnie. Neovim, z drugiej strony, opiera się na bogatej w funkcje, potężnej architekturze GUI, zapewniając pomost do świata Vima. Oni, GUI dla Neovima, pozwala na wykorzystanie możliwości edycji modalnej bez konieczności posiadania terminalowego interfejsu użytkownika. Wprowadza to większą stabilność i lepszą wydajność oraz sprawia, że kod jest łatwiejszy do utrzymania.

Podsumowanie

Tak więc, w skrócie, Neovim jest rozwidloną, bogatszą w funkcje wersją edytora tekstu Vim, opracowaną w celu uczynienia Vima prostszym, elastycznym i łatwiejszym w utrzymaniu. Neovim jest przeznaczony dla użytkowników, którzy chcą w pełni wykorzystać możliwości Vima poprzez nowy system wtyczek, lepszą architekturę GUI, pierwszorzędną obsługę osadzania i wiele innych. Chociaż Vim i Neovim są wymienne pod wieloma względami, Neovim ułatwia dodawanie nowych funkcji i tworzenie wtyczek, a tym samym czyni bazę kodową Vima bardziej łatwą w utrzymaniu. Ponadto skrypt Vima działa dobrze w Neovimie, więc wiele wtyczek napisanych specjalnie dla edytora tekstu Vim będzie również działać w Neovimie. W skrócie, Neovim zamienił Vima w pełnoprawne środowisko programistyczne.