Ș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
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 genulfor 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: –
- Ferestre multiple – orizontale, verticale & file.
- Evidențierea vizuală.
- Ajutor online prin comanda: help.
- Înregistrați macrocomenzi într-un registru pe care îl puteți executa apoi.
- Anulați (și refaceți) de mai multe ori, mai degrabă decât comutarea anulară nebună a viilor vechi.
- Istoricul liniei de comandă, istoricul căutărilor.
- O limbă întreagă încorporată împreună cu o serie de funcții disponibile, de ex. getcwd ()
- Potrivirea modelului extinsă.
- Completarea cuvintelor prin ctrl-P & ctrl-N.
- Un navigator de fișiere încorporat (puțin cam ciudat, dar poate fi util).
- 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.
- 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
- Încercați
:set paste
- set pastetoggle = < F2 > în .vimrc ( vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste)
vi
este că vă puteți aștepta să fie pe fiecare sistem compatibil POSIX.vi
și nuvim
.. Ubuntu este una dintre cele mai ușor de utilizat distro btw 😉vim
.vi
este doar o legătură simbolică care în cele din urmă indică sprevim
în instalarea implicită.vi
folosind specificațiile POSIX pentruvi
. În acest fel aveți cunoștințe portabile , precum și cunoașterea extensiilor Vim.