Największe różnice między Vimem i vi

Dzisiaj zdecydowałem się wypróbować vi zamiast Vima; Chciałem zobaczyć, jak bardzo się różni.

Nie zauważyłem żadnych różnic. Największą rzeczą, jaką zauważyłem, było to, że vi nie powiedział -- INSERT -- kiedy przeszedłem do trybu wstawiania i wystąpiły drobne różnice w interfejsie.

To sprawiło, że zacząłem się zastanawiać, jakie są największe różnice między vi a Vimem?

Komentarze

  • Oczywiście nie ' nie używasz wielu zaawansowanych funkcji vima. zaznaczanie bloków, wyszukiwanie słowa pod kursorem, zwiększanie liczby pod kursorem, podświetlanie składni itp.
  • Powiązany post – Jaka jest różnica między Vi i Vimem?
  • Jest kilka oczywistych fajnych rzeczy, takich jak rozszerzona obsługa klawiszy. Klawisze strzałek działają w przeciwieństwie do hjkl.

Odpowiedź

W Vimie jest polecenie pomocy, które mówi ci o różnicach: :help vi_diff (zwróć uwagę na podkreślenie: :help vi_diff)

Ze strony Vima , największe to:

nieograniczone cofanie

Możesz wykonać xxxx i cofnąć każdą z czterech operacji usuwania. Kiedy ostatnim razem, gdy wpisałeś ” jjjj „, a potem okazało się, że klawisz Caps Lock jest włączony? Przypadkowo połączyłeś pięć wierszy razem i Vi może cofnij tylko ostatnie polecenie. W Vimie możesz cofnąć wszystkie cztery polecenia ” J ” i odzyskać oryginalny tekst.

przenośność

Vi jest dostępne tylko na Uniksie. Vim działa na MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX i inne systemy. A także na każdym systemie Unix.

podświetlanie składni

Vim może być zaprogramowany do podświetlania części bufora w różnych kolorach lub stylach, w zależności od typu edytowanego pliku. Istnieją setki zestawów reguł podświetlania składni dołączonych do Vima.

GUI

Vim działa dobrze na konsoli, ale może działać natywnie w wielu GUI, w tym X Windows, Mac OS i Microsoft Windows. Używa natywnych widżetów GUI do przewijania, dzielenia buforów i menu. Może także rozmawiać ze schowkiem.

Komentarze

  • Więcej różnic wspomniano w faq
  • Zgodnie z plikiem readme niektóre z tych systemów operacyjnych są nie jest już obsługiwany.

Odpowiedź

Vim ma wiele funkcji, których Vi nie ma, nawet funkcje, które nie są oczywiście „zaawansowane” funkcje.

W praktyce oznacza to, że jeśli jesteś przyzwyczajony do Vi, prawdopodobnie napotkasz bardzo niewiele różnic, jeśli zaczniesz używać Vima (lub innego klonu Vi), ale jeśli używasz do Vima i jeśli twoje „refleksy” obejmują funkcje takie jak podświetlanie trybu wizualnego, dowolna akcja klawiszowa zaczynająca się na „g” lub „z”, dowolna akcja tekstowa z „i” lub „a” [np. „daw”, aby usunąć słowo pod kursorem], poruszając się za pomocą klawiszy strzałek w trybie wstawiania itp., zobaczysz, że nie działają one w Vi.

Jest też pytanie, co dokładnie używałeś, kiedy powiedziałeś, że „próbowałeś Vi”. W wielu systemach „vi” faktycznie uruchamia Vima, w trybie, w którym mają zastosowanie niektóre z tych różnic (domyślny tryb pokazu, jak zauważyłeś, klawisze strzałek nie działają w trybie wstawiania), a inne nie (tryb wizualny i klawisze g / z działają ), a niektóre funkcje zależą od opcji czasu kompilacji, która jest czasami wyłączona w używanym do tego celu „malutkim Vimie” (obiekty tekstowe, takie jak „aw” a słowo, są jednym z nich). Nie dostaniesz te, jeśli uruchomisz prawdziwe Vi, lub jeśli „vi” jest jakimś innym klonem z mniejszą liczbą lub innymi funkcjami niż Vim, na przykład nvi lub VILE.

I na niejasne side, podczas gdy „malutki Vim w trybie Vi” oczywiście nie ma żadnych funkcji, których nie ma pełny Vim, jest kilka cech oryginalnego Vi, których brakuje Vimowi. Są one udokumentowane w :help vi-differences.

Komentarze

  • Ja ' stawiam mocno, że OP faktycznie ma ” tiny vim ” vi.
  • mówisz, że w wielu systemach v komenda faktycznie uruchamia Vima. Jak więc sprawdzić, czy naprawdę używam vi czy vim?
  • @firstpostcommenter Cóż, ' ll zasadniczo nadal wygląda jak vim – the ~ na lewa część ekranu będzie miała kolor niebieski, a tekst ogłoszenia o wersji może nadal pojawiać się na środku ekranu, jeśli uruchomisz go samodzielnie bez określenia pliku.Jeśli ' bardzo zależy Ci na uruchamianym edytorze, możesz też zainstalować inne klony vi, a także oryginalny ” vi ” występuje bardzo rzadko w dystrybucjach linux / bsd.

Odpowiedź

Większość porównań daje większą funkcjonalność Vimowi niż vi, ale jest jeden wyjątek. W vi był tryb „otwarty”, a Vim tak naprawdę nie ma tego trybu.

Tryb otwarty jest trybem jednowierszowym używanym w tamtych czasach z terminalami, które nie miały elektronicznego wyświetlacze, tj. teletypy, drukarki literowe i tym podobne, a także wyświetlacze, w których kursor pozostaje tylko na dole.

Wiem, że istnieje dokumentacja, która mówi, że Vim symuluje tryb otwarty, ale moje doświadczenie jest takie nie „t. Bo widziałem go na własne oczy używane z vi i nigdy nie widziałem, żeby Vim to robił. Wygląda na to, że Vim używa po prostu polecenia open po prostu do otwarcia i edytuj plik w trybie wizualnym. Uważam, że oficjalna dokumentacja Vima stwierdza, że nie obsługuje on trybu otwartego.

Komentarze

  • I mieć zainstalowany ex-vi.sourceforge.net , który jest portem oryginalnego Vi. Jak uruchomić ten tryb otwarty? Strona podręcznika wspomina o tym, mówiąc o ^R, ale nie daje żadnej innej pomocy. :open some/file zwraca open: No such command from open/visual.
  • @muru Q, aby wpisać ex mode, a następnie open. z, aby pokazać kontekst bieżącego wiersza, gdy ' jesteś w trybie otwartym. Aby się wycofać, Q, a następnie vi.

Odpowiedz

Vim FAQ ma dobrze sformatowaną listę: https://vimhelp.org/vim_faq.txt.html#faq-1.4

Fragment FAQ:

  • Wielopoziomowe cofanie
  • Karty, wiele okien i buforów
  • Elastyczny tryb wstawiania (można używać klawisze strzałek w trybie wstawiania)
  • Makra
  • Tryb wizualny (wizualnie zaznaczaj fragmenty tekstu)
  • Operatory bloków
  • System pomocy online
  • Edycja wiersza poleceń i historia
  • Uzupełnianie wiersza poleceń (uzupełnianie tabulatorów)
  • Przewijanie poziome (długie linie)
  • Ulepszenia Unicode i internacjonalizacja .

Odpowiedź

Myślę, że bardzo trudno jest dokonać porównania z powodu zmian w vi, które mają wydarzyło się w czasie.

Kiedy byłem na studiach, używałem zwykłego vanilla vi na głupim terminalu (a także na emulatorze terminala na Macu), który łączył się z komputerami mainframe przy użyciu Systemu V. Nie można nawet stwierdzić, że jakikolwiek więcej.

Ale nie jestem nawet pewien, czy to była prawda vi. Mniej więcej w tym czasie powstało wiele klonów i portów, ponieważ vi w tamtym czasie nie było open-source. A kiedy producenci tworzyli klony, dodawali funkcje, których nie było w vi. Historia jest trochę zagmatwana. Możesz przeczytać to na Wikipedii i gdzie indziej.

Więc jeśli nie korzystałeś z pewnych dostawców / sprzętu, nie używałeś vi, ale czegoś takiego jak vi.

Ale pamiętam, że vi (lub klon, którego używałem) był bardzo minimalistyczny w swoim interfejsie (bez kolorów, bez etykiet INSERT, bez wielokrotnego cofania itp.), ale potężny w tym, co faktycznie mógł osiągnąć. Bardzo praktyczne.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *