Wiem trochę o * nix edytory tekstu (obecnie migracja od nano
do vim
), a po rozglądając się nieco na Unix i Linux SE, zauważyli, że vi
jest używana zamiast „vim” w sprawiedliwy liczby pytań. Wiem, że „vim” oznacza „Vi IMproved” i mając to na uwadze, zastanawiam się, dlaczego ktoś wolałby używać vi zamiast vim. Czy vi ma jakąkolwiek znaczącą przewagę nad vimem?
Edycja: Myślę, że moje pytanie jest źle interpretowane. Wiem, że vim jest w przeważającej części znacznie bardziej wydajny i kompletny niż vi. Chcę wiedzieć, czy są jakieś możliwe przypadki, w których vi ma przewagę nad vimem, takie jak mniejsze zużycie pamięci, rozpowszechnienie w systemach * nix itp.
vi
jest to, że można oczekiwać, że będzie on dostępny w każdym systemie zgodnym z POSIX.vi
i nievim
.. Ubuntu jest jedną z najbardziej przyjaznych dla użytkownika dystrybucji btw ;-)vim
.vi
jest tylko dowiązaniem symbolicznym, które ostatecznie wskazujevim
na domyślną instalację.vi
używać specyfikacji POSIX dlavi
. W ten sposób masz przenośną wiedzę, a także znasz rozszerzenia Vima.Odpowiedzi:
vi
jest (także) standardowym edytorem POSIX . Istnieje wiele implementacji ivim
prawdopodobnie jest najpopularniejsza przynajmniej w systemie Linux.Podczas gdy wiele tradycyjnych systemów operacyjnych zgodnych z Uniksem zapewnia
vi
implementacje bardzo zbliżone do standardu,vim
dodano wiele dodatkowych funkcji, które czynią go mieczem obosiecznym.Oczywiście rozszerzenia te są zwykle zaprojektowane w celu ułatwienia procesu edycji i zapewnienia przydatnych funkcji i funkcjonalności. Kiedy jednak przyzwyczaisz się do niektórych z nich (nie kosmetycznych, takich jak kolorowanie składni, ale te, które zmieniają zachowanie redaktora), możesz łatwo zapomnieć o ich specyficzności; a zastosowanie innej implementacji, w tym opartej na oryginalnym kodzie BSD, może być bardzo frustrujące. Prawda jest również odwrotna.
Jest to dość podobne do problemu występującego w skryptach używających bashism innych niż POSIX w obliczu bardziej ortodoksyjnych implementacji powłoki, takich jak
dash
lubksh
.źródło
Żadne vi nie ma żadnej znaczącej przewagi nad vimem, a jest na odwrót. Vim ma więcej zalet niż Vi. Możesz być zainteresowany: Dlaczego, och, DLACZEGO te #? @! orzechy używają vi?
Edytuj także czytaj: Czy nauka VIM jest warta wysiłku?
źródło
Po spędzeniu dużej części mojego życia (bez dzieciństwa) na wygodnej edycji z Vimem, spędziłem około miesiąca tylko używając vi. W ten sposób zdałem sobie sprawę, że byłem zależny od Vima w zakresie wszystkich moich potrzeb w zakresie modyfikacji tekstu. Przed podróżą z vi, ilekroć musiałem podmieniać jakiś tekst lub wykonywać podobną operację w dużej grupie plików, po prostu otwierałem pliki w Vimie i uruchamiałem
:bufdo
polecenie, i zawsze gdy musiałem wcinać lub formatować niektóre pliki, Otworzyłem je w Vimie i użyłem Vima=
igw
poleceń. Byłem zależny od Vima. Po uświadomieniu sobie, że vi nie ma tych poleceń, byłem zmuszony przeprowadzić masową transformację tekstused
i dowiedziałem się wiele o innych programach, takich jakawk
iindent
. Chociaż ostatecznie wróciłem do korzystania z Vima, wiedza, którą zdobyłem dzięki mniej polecanemu edytorowi, była znacząca i okazała się niezwykle przydatna. Oprócz uczenia się o narzędziach poza edytorem tekstowym, poznałem także vi. Ilekroć pracuję nad nowym systemem lub serwerem, który nie ma Vima, czuję się znacznie bardziej komfortowo, używając vi niż przed moją miesięczną wycieczką.Ponadto w zeszłym miesiącu zainstalowałem Linuksa na taniego tabletu WM8650 i zauważyłem zauważalną różnicę wydajności między Vimem a vi, więc zwykle używam vi na tablecie.
źródło
-i
Przełącznik na obu jest rozszerzeniem GNU.) Ale możesz używać ich przenośnie z czymś takimfor f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
Trudno mi byłoby żyć bez vima, ale nie mogę znieść vi . Jednak nauczenie się tego pierwszego pozostawi przynajmniej pomysł, jak sobie z tym poradzić, kiedy to wszystko będzie dostępne.
Interfejs vima domyślnie jest właściwie bardzo zbliżony do vi. Jeśli pracuję na systemie z vimem, pierwszą rzeczą, którą robię, jest dodanie tych rzeczy do
~/.vimrc
:Jest kilka innych rzeczy, które wolę - teraz podsumowanie i numeracja itp. - Ale nieważne. „enable syntax enable” po prostu włącza podstawowe podświetlanie składni (nieco grubsze:
filetype plugin on
jest również fundamentalne); „nocp” wyłącza kompatybilność vi i właśnie to zaczyna odróżniać vima od ye olde vi (np. włącza,showmode
co czyni całe doświadczenie nieco bardziej ludzkim, ponieważ masz teraz pewne pojęcie, czy masz dowodzenie, czy ~ INSERT ~ tryb). „wildmenu” daje tylko poziome menu ukończenia podczas wykonywania niektórych czynności, co również ułatwia życie.Funkcje edytowania tekstu w vimie nie mają sobie równych - oprócz emacsa, nigdy nie widziałem ani nie słyszałem o oprogramowaniu, które jest bliskie. Nie są łatwe do nauczenia, ale kiedy je znasz, są znacznie szybsze w użyciu niż menu myszy i znacznie bardziej dynamiczne niż proste alternatywne makra klawiszy w interfejsach opartych na menu myszy. Do programowania czasami używam vima razem z IDE, takim jak Eclipse, ale większość pracy wykonuję w vimie.
Jeśli pójdziesz tą ścieżką, Lol, zajrzyj do wtyczek autouzupełniania i taglist. I strzeżcie się ciemnej strony.
źródło
set mouse=a
też dodaję .Zaletą jest to, że vi zwykle jest wstępnie instalowany w korporacyjnym systemie UNIX, takim jak AIX lub Solaris. Poza tym vim nie jest dostępny na nośniku instalacyjnym.
źródło
Zauważyłem, że tylko wybrać
Vi
sięVIM
, gdy jestem kopiując i wklejając dokument tekstowy lub plik konfiguracyjny, który użyłemcat
komendy. Jest tak, ponieważ kiedy próbuję,ctrl-c
a następniectrl-v
doVIM
otwartego dokumentu, zmusza wszystkie wiersze do umieszczenia komentarza przed nimi. Więc kiedy używaćVi
doctrl-v
albopaste
doVi
otwartego dokumentu, to dokładnie to, co ja wkleja skopiowany z. Poza tym używam przezVIM
cały dzień.Cieszyć się!
źródło
:set paste
Jak już wspomniano w poprzednich odpowiedziach, vi zawiera prawie każdy system UNIX.
Chciałem tylko dodać przykład. Arch Linux jest szczególnie popularną i lekką dystrybucją, której ani Instalator, ani dystrybucja podstawowa nie są domyślnie dostarczane z vimem, jednak obie są dostarczane z vi.
Nie jest to zaletą dla vi per se , ponieważ można po prostu zainstalować vima ręcznie, a instalacja wymaga niewiele edytora tekstu i nic, w przypadku gdy vim nie jest lepszy od vi w zamierzonym celu. Ale zrozumienie różnicy i to, że vi jest bardziej wszechobecny i lekki niż vim, daje mu pewne niszowe zalety.
Ponadto, żeby być kompleksowym, nikt jeszcze nie powiedział wprost, że vi jest bezpośrednim prekursorem vim. Vim został specjalnie zaprojektowany, aby być wszystkim, czym był vi i więcej.
Więc w bardzo bezpośredni sposób, vim jest lepszy od vi, ponieważ został zaprojektowany .
źródło
Jedynym powodem, aby używać vi zamiast vim, jest to, że nie masz innego wyboru.
Istnieje wiele, wiele powodów, dla których vim oznacza „vi ulepszono”!
Pożyczając z powiązanego postu Odpowiedziałem: -
źródło
Oto ćwiczenie z Vima Koansa :
Master Wq i Unix master
Stary mistrz Unix przyszedł do Master Wq. „Martwię się, Wq. Uczysz drogi Vima. vi jest święte, ale Vim nie jest; jego kod się rozrasta, cechy pamięci tłumu; jego pliki binarne są ogromne, a zachowanie niespójne. To nie jest droga Uniksa. Obawiam się, że wprowadzasz w błąd swoich uczniów. Co można zrobić?"
Mistrz Wq pokiwał głową. „Masz rację”, powiedział. „Vim jest zepsuty. Pozwól nam to naprawić. Powinniśmy zaczynać?"
Stary mistrz Unix zgodził się i otworzył powłokę. Wpisał:
Zaczął kodować. Mistrz Wq obserwował przez chwilę, a następnie zapytał go: „Jakiej implementacji vi używasz? Nvi? Wigor? Elvis?
„Nie wiem”, powiedział mistrz Unix. „To nie ma znaczenia.”
Mistrz Wq pokiwał głową. Mistrz uniksowy siedział przez chwilę oszołomiony i niezapisany zamknął dokument.
źródło