Największe różnice między Vimem a VI


25

Dzisiaj postanowiłem wypróbować Vi zamiast Vima, chciałem zobaczyć, jak różni się to. W ogóle nie zauważyłem dużych różnic, największą rzeczą, jaką zauważyłem, było to, że Vi nie powiedziała, -- INSERT --kiedy wszedłem w tryb wstawiania, i były pewne drobne różnice interfejsu.

Zastanawiałem się, jakie są największe różnice między Vi a Vimem?


1
Oczywiście nie używasz wielu zaawansowanych funkcji vima. zaznaczanie bloku, wyszukiwanie słowa pod kursorem, zwiększanie numeru pod kursorem, podświetlanie składni itp.
Jim

Odpowiedzi:


25

W vimie znajduje się polecenie help, które mówi o różnicach: :help vi_diff

Największe z witryny Vima to:

nieograniczone cofanie

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

ruchliwość

Vi jest dostępny tylko na Uniksie. Vim działa na MS-Windows, Macintosh, Amiga, OS / 2, VMS, QNX i innych systemach. 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. Wykorzystuje natywne widżety GUI do przewijania, dzielenia buforów i menu. Może także rozmawiać ze schowkiem.


4
Więcej różnic wymieniono w FAQ
Christian Brabandt,

Zgodnie z plikiem Readme niektóre z tych systemów operacyjnych nie są już obsługiwane.
Rolf

7

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

W praktyce oznacza to, że jeśli jesteś przyzwyczajony do Vi, prawdopodobnie napotkasz bardzo niewiele różnic, jeśli zaczniesz używać Vima (lub jakiegoś innego klonu Vi), ale jeśli jesteś przyzwyczajony do Vima i jeśli twój „refleks” obejmuje takie funkcje, jak wyróżnianie w trybie wizualnym, dowolna czynność kluczowa rozpoczynająca się od „g” lub „z”, dowolna czynność tekstowa oznaczona „i” lub „a” [np. „daw”, aby usunąć słowo pod kursorem], nawigacja za pomocą klawiszy strzałek w trybie wstawiania itd. przekonasz się, że nie działają one w Vi.

Jest także pytanie, czego dokładnie używałeś, kiedy mówiłeś, że „próbowałeś Vi”. W wielu systemach „vi” faktycznie uruchamia Vima w trybie, w którym obowiązują niektóre z tych różnic (domyślny tryb pokazu, jak zaobserwowano, 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 czasami jest wyłączona w „malutkim Vimie” używanym do tego celu (obiekty tekstowe, takie jak „aw” słowo, są jednym z nich). Nie dostaniesz ich, jeśli uruchomisz prawdziwego Vi lub jeśli „vi” to jakiś inny klon z mniejszą liczbą lub innymi funkcjami niż Vim, taki jak nvi lub VILE.

I z niejasnej strony, podczas gdy „malutki Vim w trybie Vi” oczywiście nie ma żadnych cech, których nie ma pełny Vim, istnieje kilka cech oryginalnego Vi, którego brakuje w Vimie. Są one udokumentowane w :help vi-differences.


2
Założę się, że OP ma „vim” vi.
Kevin,

2

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

Tryb otwarty to tryb jednowierszowy, który był używany w przeszłości z terminalami, które nie miały wyświetlaczy elektronicznych, tj. Teletypów, drukarek literowych itp., A także z wyświetlaczami, 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, że nie, ponieważ widziałem, że używa się go z vi na własne oczy i nigdy nie widziałem, żeby vim to robił. Wygląda na to, że vim po prostu używa openpolecenia, aby po prostu otworzyć i edytować plik w trybie wizualnym. Wierzę, że oficjalna dokumentacja vima stwierdza, że ​​nie obsługuje trybu otwartego.


Mam zainstalowany ex-vi.sourceforge.net , który jest portem oryginalnej Vi. Jak uruchomić ten tryb otwarty? Strona wspomina o tym, gdy mówi ^R, ale nie udziela żadnej innej pomocy. :open some/filezwraca open: No such command from open/visual.
muru

@muru, Qaby wejść w tryb ex open. zaby pokazać kontekst bieżącej linii, gdy jesteś w trybie otwartym. Aby wycofać, Qwtedy vi.
Antony

0

Myślę, że bardzo trudno jest dokonać porównania, ze względu na zmiany w vi, które nastąpiły z czasem.

Kiedy byłem w college'u, używałem zwykłej wanilii vi na głupim terminalu (a także na emulatorze terminali na komputerze Mac), który łączył się z komputerami mainframe za pomocą Systemu V. Nie możesz tego nawet znaleźć.

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

Więc jeśli nie korzystałeś z niektórych dostawców / sprzętu, nie korzystałeś z vi, ale coś w rodzaju vi.

Ale przypominam sobie, że vi (lub klon, którego używałem) jest bardzo minimalistyczny w swoim interfejsie (bez kolorów, bez etykiet INSERT, bez wielu cofnięć itp.), Ale potężny w tym, co może osiągnąć. Bardzo praktyczne.


0

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

Fragment FAQ:

  • Cofanie wielopoziomowe
  • Karty, wiele okien i bufory
  • Elastyczny tryb wstawiania (można używać klawiszy strzałek w trybie wstawiania)
  • Makra
  • Tryb wizualny (wizualnie zaznacz sekcje tekstu)
  • Blokuj operatorów
  • System pomocy online
  • Edycja i historia wiersza poleceń
  • Uzupełnianie wiersza poleceń (tabulacja)
  • Przewijanie w poziomie (długie linie)
  • Ulepszenia Unicode i internacjonalizacji.
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.