Vi vs vim sau, există vreun motiv pentru care aș vrea vreodată să folosesc vi?

Știu puțin despre editorii de text * NIX (în prezent migrează de la nano la vim) și, după ce ne-am uitat puțin pe Unix & Linux SE, am observat că se utilizează vi în loc de „vim” într-un număr destul de mare de întrebări. Știu că „vim” înseamnă „Vi IMproved” și, având în vedere acest lucru, mă întreb de ce cineva ar prefera să folosească vi în loc de vim. Vi are vreun avantaj semnificativ față de vim?

Edit: Cred că întrebarea mea este interpretată greșit. Știu că vim este, în cea mai mare parte, semnificativ mai puternic și mai complet de caracteristici decât vi. Ceea ce vreau să știu este dacă există cazuri posibile în care vi are un avantaj față de vim, cum ar fi mai puțină utilizare a memoriei, prevalența pe sistemele * nix etc.

Comentarii

  • Lucrul frumos despre vi este că vă puteți aștepta să fie pe fiecare sistem compatibil POSIX.
  • De fapt, instalarea standard Ubuntu include vi și nu vim .. Ubuntu este una dintre cele mai ușor de utilizat distro btw 😉
  • @amyassin This este incorect, Ubuntu, ca majoritatea distribuțiilor Linux, include vim. vi este doar o legătură simbolică care în cele din urmă indică spre vim în instalarea implicită.
  • Sfatul meu este: Utilizați Vim, dar învață vi folosind specificațiile POSIX pentru vi . În acest fel aveți cunoștințe portabile , precum și cunoașterea extensiilor Vim.
  • @DDK Ați ratat ” în cele din urmă ” în declarația mea. ” ls -l / etc / alternatives / vi ” – > ” lrwxrwxrwx 1 rădăcină rădăcină 17 janv. 1 2016 / etc / alternatives / vi – > /usr/bin/vim.tiny”

Răspuns

vi este (de asemenea) un editor standard POSIX . Există o mulțime de implementări și vim este probabil cel mai popular.

În timp ce multe sisteme de operare tradiționale conforme Unix oferă vi implementări foarte apropiate de standard, vim a adăugat o mulțime de caracteristici suplimentare care îl fac o sabie cu două tăișe.

Desigur, aceste extensii sunt de obicei proiectate pentru a ușura procesul de editare și pentru a oferi caracteristici și funcționalități utile. Cu toate acestea, odată ce sunteți obișnuiți cu unele dintre ele (nu cu cele cosmetice, cum ar fi colorarea sintaxei, ci cu cele care schimbă comportamentul editorului) puteți uita cu ușurință că sunt specifice; și folosind o implementare diferită, inclusiv cele bazate pe BSD original codul poate fi foarte frustrant. Opusul este valabil și.

Acest lucru este destul de similar cu problema care se întâmplă cu scripturile care folosesc bashisme non POSIX confruntate cu implementări de shell mai ortodoxe precum dash sau ksh.

Răspuns

Nu vi nu are orice avantaj semnificativ față de vim este mai degrabă invers. Vim are mai multe avantaje decât Vi. S-ar putea să vă intereseze: De ce, oh DE CE, fac acele #? @! nutheads use vi?

Edit citește și: Merită efortul de a învăța VIM?

Comentarii

  • Da. Nu ‘ nu folosesc niciun IDE, deoarece editorii pe care te obligă să-i folosești nu sunt ‘ t Vim.
  • @Keith Folosesc atât Xcode, cât și Eclipse și ‘ încă mai pot edita doar cu vi.
  • @Keith SlickEdit are o emulație Vim excelentă și IDEA ‘ s se apropie de el. De asemenea, Visual Studio are ViEmu.
  • IntellIJ are și un plugin vim frumos care suprascrie comportamentul editorului standard ‘.

Răspuns

După ce am petrecut o mare parte din viața mea (fără a include copilăria) editând confortabil cu Vim, am petrecut aproximativ o lună folosind doar vi. Procedând astfel, mi-am dat seama că am fost dependent de Vim pentru toate nevoile mele de modificare a textului. Înainte de călătoria mea cu vi, ori de câte ori trebuia să înlocuiesc un text sau să efectuez o operație similară într-un grup mare de fișiere, deschideam fișierele în Vim și executam o comandă :bufdo și, ori de câte ori trebuia să indentez sau să formatez unele fișiere, le deschideam în Vim și foloseam comenzile Vim „s = și gw Eram dependent de Vim.După ce mi-am dat seama că vi nu avea aceste comenzi, am fost forțat să efectuez transformări de text în bloc cu sed și am învățat multe despre alte programe, cum ar fi awk și indent. Deși am revenit la utilizarea Vim în cele din urmă, cunoștințele pe care le-am dobândit folosind un editor mai puțin prezentat au fost substanțiale și s-au dovedit a fi extrem de utile. Pe lângă faptul că am aflat despre instrumentele din afara editorului de text, am cunoscut mai bine vi. Ori de câte ori lucrez la un sistem nou sau la un server care nu are Vim, mă simt mult mai confortabil folosind vi decât înainte de excursia de o lună.

De asemenea, luna trecută am instalat Linux pe o tabletă WM8650 ieftină și am constatat că există o diferență notabilă de performanță între Vim și vi, așa că tind să folosesc vi pe tabletă.

Comentarii

  • Consider că aceasta este o problemă obișnuită în IT – instrumentele care ne ajută pot ascunde lucrurile pe care ‘ le-ar fi mai bine să învățăm.
  • De fapt, editarea în loc a fișierelor pe multe fișiere nu se poate face ‘ portabil cu Awk sau Sed fie . (-i pornirea ambelor este o extensie GNU.) Dar le puteți utiliza portabil cu ceva de genul for f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done

Răspuns

Mi-ar fi greu să trăiesc fără vim, dar nu pot să suport vi . Cu toate acestea, învățarea primului vă va lăsa cel puțin o idee despre cum să faceți față mai târziu, când asta este tot ceea ce este disponibil.

Interfața vim în mod implicit este de fapt destul de aproape de vi. Dacă „Lucrez la un sistem cu vim, primul lucru pe care îl fac este să adaug aceste lucruri la ~/.vimrc:

syntax enable set nocp set wildmenu 

Există „o grămadă de alte lucruri pe care le prefer – nowrap și numerotarea activată, etc – dar nu contează.” Sintaxa activă „activează doar evidențierea sintaxei de bază (oarecum mai strâns: filetype plugin on este fundamental prea); „nocp” dezactivează compatibilitatea vi și tocmai acesta începe să distingă vim de ye olde vi (ex. , activează showmode, ceea ce face ca întreaga experiență să fie ceva mai umană, deoarece aveți acum o idee despre dacă sunteți în comandă sau modul ~ INSERT ~). „Wildmenu” vă oferă doar o meniu de finalizare orizontală atunci când faceți unele lucruri, ceea ce ușurează și viața.

Facilitățile de editare a textului ale vim nu sunt egale – în afară de emacs, „nu am văzut și nu am auzit niciodată de un software care se apropie. Nu sunt ușor de învățat, dar odată ce le cunoașteți, acestea sunt mult mai rapide de utilizat decât meniurile mouse-ului și mult mai dinamice decât alternativele simple de macro-cheie din interfețele bazate pe meniul mouse-ului. Pentru programare, folosesc uneori vim alături de un IDE precum Eclipse, dar fac cea mai mare parte a lucrului în vim.

Dacă luați calea respectivă, lol, căutați în completarea automată și pluginurile pentru etichete. Și ferește-te de partea întunecată.

Comentarii

  • Am adăugat întotdeauna și set mouse=a.
  • În ceea ce privește programarea dvs. comentariu, puteți găsi eclim interesant …
  • @ire_and_curses: haven ‘ t încercat. Eclipse și vim monitorizează fișierele sursă și le permit actualizarea externă, iar răsucirea de la un desktop la altul este răsucirea de la un desktop la altul. Pare destul de ideea asta.
  • Deși nu cred că ‘ nu cred că acest răspuns ar trebui să fie răspunsul ales (deoarece ‘ s părtinitoare), este ‘ exact tipul de perspectivă care este utilă pentru înțelegerea diferențelor. Vă mulțumim că ați luat o poziție.

Răspuns

Avantajul este că vi este de obicei preinstalat în întreprindere UNIX cum ar fi AIX Solaris. În plus, vim nu este accesibil pe suportul de instalare.

Răspuns

Acesta este extras din Vim Koans :

Master Wq și masterul Unix

Un master Unix vechi a venit la Master Wq. „Sunt tulburat, Wq. Înveți calea lui Vim. vi este sfânt, dar Vim nu; codul său se răspândește, caracteristicile sale memorează mulțimea; binarele sale sunt vaste, comportamentul său inconsistent. Aceasta nu este calea Unix. Mă tem că vă înșelați elevii. Ce se poate face? ”

Maestrul Wq dădu din cap. „Ai dreptate”, a spus el. „Vim este rupt. Haideți să o remediem. Să începem? ”

Vechiul maestru Unix a fost de acord și a deschis un shell. A tastat:

$ vi vim.c 

A început să codeze. Maestrul Wq a urmărit o vreme și apoi l-a întrebat: „Ce implementare a vi folosești? Nvi? Vim? Elvis? ”

„ Nu știu ”, a spus maestrul Unix. „Nu contează.”

Maestrul Wq dădu din cap. Maestrul Unix a rămas uimit o clipă și și-a închis documentul nesalvat.

Comentarii

  • hahah … pentru mine este amuzant …. profund dar amuzant.Vă mulțumim pentru distribuire.

Răspuns

După cum am menționat deja răspunsurile anterioare, vi vine cu aproape fiecare sistem UNIX acolo.

Am vrut doar să adaug un exemplu. Arch Linux este o distribuție deosebit de populară și ușoară, pe care nici instalatorul, nici distro-ul de bază nu vin cu vim în mod implicit, însă ambele vin cu vi.

Acest lucru nu este un avantaj pentru vi în sine , deoarece puteți pur și simplu să instalați vim manual și este puțin de realizat în instalare care necesită un editor de text și nimic în care vim este superior vi pentru scopul dorit. Dar înțelegând diferența și acel vi este mai omniprezent și mai ușor decât vim îi oferă unele avantaje de nișă.

De asemenea, doar pentru a fi cuprinzător, nimeni nu a menționat încă în mod explicit că vi este un precursor direct al vim. Vim a fost conceput în mod special să fie totul că vi a fost și multe altele.

Deci, într-un mod foarte direct, vim este superior vi, deoarece a fost conceput să fie .

Răspunde

Singurul motiv pentru care folosești vi peste vim este atunci când nu ai altă opțiune.

Există multe, multe motive pentru care vim stă fo r „vi îmbunătățit”!

Împrumut de la o postare asociată Am răspuns: –

  1. Ferestre multiple – orizontale, verticale & file.
  2. Evidențierea vizuală.
  3. Ajutor online prin comanda: help.
  4. Înregistrați macrocomenzi într-un registru pe care îl puteți executa apoi.
  5. Anulați (și refaceți) de mai multe ori, mai degrabă decât comutarea anulară nebună a viilor vechi.
  6. Istoricul liniei de comandă, istoricul căutărilor.
  7. O limbă întreagă încorporată împreună cu o serie de funcții disponibile, de ex. getcwd ()
  8. Potrivirea modelului extinsă.
  9. Completarea cuvintelor prin ctrl-P & ctrl-N.
  10. Un navigator de fișiere încorporat (puțin cam ciudat, dar poate fi util).
  11. Tasta ESC renunță la comenzile pe care încercați să le scăpați în loc să le executați (în mod nebunesc) Așa cum face vi.
  12. Abilitatea de a rula comenzi pe toate bufferele, argurile sau ferestrele prin bufdo, argdo & windo.

Comentarii

  • Probabil că ai fi putut aduce mai departe ” multe, multe ” motive pe care le-ai menționat în unix.stackexchange.com/a/425597/85039 răspundeți aici. Că ‘ ar face acest răspuns puțin mai bun; în caz contrar, se citește mai mult ca un comentariu decât un răspuns real
  • Punct luat. Răspunsul actualizat, împrumutând de la un răspuns asemănător pe care l-am făcut ieri.

Răspuns

Am observat că eu numai alege Vi peste VIM când Copiez și lipesc un document text sau un fișier de configurare pe care l-am folosit cat comanda. Acest lucru se datorează faptului că atunci când încerc să ctrl-c și apoi ctrl-v în documentul deschis VIM, forțează toate liniile să aibă un comentariu în fața lor. Deci, când folosesc Vi la ctrl-v sau paste în Vi document deschis, acesta lipeste exact din ce am copiat. În afară de asta, folosesc VIM toată ziua.

Bucurați-vă!

Comentarii

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *