Îți place Vi? Este intuitiv?

Îți place Vi? Este intuitiv?

Vi este un editor care are vreo 40 de ani. Sigur, între timp au apărut clone și portări, cea mai importantă/cunoscută fiind Vim (și, în ultimii ani, NeoVim a prins ceva tracțiune) dar, conceptual, este Vi.

La un prim contact, Vi pare ca o capcană iar toate lucrurile par pe dos și/sau neintuitive. Nu degeaba cea mai căutată expresie este how to exit vim. Dar, dacă ai uuuuun pic de răbdare să înțelegi că în spatele fiecărei combinații există o explicație – ba chiar una logică! – o să-ți dai seama că treaba s-ar putea să îți schimbi părerea.

Nu aș putea spune că adooooor Vi, că nu pot trăi fără el sau alte minuni, dar când editez ceva pe un server, îl prefer întotdeauna. 

Acum, întrebarea e simplă: doar mie mi se pare Vi a fi intuitiv și utilizabil?

15 Comentarii

Mălin a scris

@Ionuț Staicu: Cu propoziția asta ar trebui să-ți găsești răspunsul la întrebare: „Vi este un editor care are vreo 40 de ani.”
Atunci când îți crapă un server și e musai să te bagi pe consolă de Java prin KVM, care merge cum merge, n-are rost să mă bag în detalii pentru că cine a folosit știe ce și cum, de pe o tastatură de Apple sau dispozitiv mobil și ai doar Vi la dispoziție e ca și cum te-ai apuca să scrii un plugin de WordPress folosind COBOL.
Parcă scopul tehnologiei se rezumă la evoluție nu la a bate pasul pe loc pentru ca e old-school și dacă e old-school atunci e musai cool.

paul a scris

Ca utilizator de Vim de cativa ani buni, pot sa spun urmatoarele:

– ViM (hai sa-l lasam un pic pe vi) evolueaza constant, nu e vechi de 30 de ani. ViM 8.1 a aparut in mai 2018.
– Exista mult hate pentru el pentru ca barebones poate sa nu fie foarte friendly. Dar, sunt mii de pluginuri, poti customiza orice tasta, etc. Are integrare cu git, semantic completion, semantic highlighting, cam orice are orice IDE. Intrebarea este daca merita timpul investit in customizare cand poti sa ai un IDE de-a gata. Pentru mine a meritat. Sunt mult mai rapid in Vim decat intr-un IDE pentru ca setup-ul e dupa nevoile mele. Se deschide intr-un minut, nu in 2 ore (nu exagerez, am un proiect care ia 2 ore sa se deschida in CLion). Am un fisier de 1GB de editat, nicio problema. Il pornesc barebones si mergem mai departe.
– Nu stiu cum functioneaza cu tastatura apple. Dar, intrucat am cunostinte care il folosesc, ma indoiesc ca e inutilizabil. Posibil sa trebuiasca putina configuratie
– Configuratia dureaza prea mult? sunt o gramada de oameni care is publica setupul.

In the end, the best tool is the one that does the job. Doar am incercat sa spun ca ViM e o optiune valida, daca i se ofera sansa si nu hate dupa primul impas. Nu functioneaza ca un editor obisnuit, si nu stiu daca ar trebui.

Mălin a scris

@paul: Nu am spus că e inutilizabil cu tastatura Apple ci că crează un drawback pentru că ești obligat să remapezi taste. N-ai INSERT, iar BACKSPACE nu funcționează. Ori când te bagi pe un server pe consolă pentru c-a crăpat și ești obligat să pierzi timp aiurea remapând taste nu e prea user-friendly, mai ales în ziua de azi când te cam aștepți ca orice să fie cross-platform.
Apoi, mă bucur că spui că nu e un editor obișnuit. E un detaliu foarte important și mulți îl ignoră. Tocmai aici e problema pentru că toți ăia care se cred într-un fel superiori că folosesc Vi(m) îl compară cu un editor banal gen Nano (Pico) cu care poți lucra mai rapid și mai ușor atunci când ai nevoie urgentă să editezi un fișier de configurare ca să pornești un server ce a crăpat.
Iar hate-ul ăsta fix de aici vine. Pentru că există indivizi care se cred speciali pentru că folosesc Vi(m). Bravo lor, eu unul am ale nevoi, iar povestea cu heităreala pleacă fix de la treaba asta și glumele de 2 lei despre cei care nu folosesc sau nu știu să lucreze cu Vi(m).

paul a scris

@Mălin: Nu, nu trebuie sa remapezi taste. Intratul in modul insert se face cu i, nu cu insert. Si exemplul cu serverul nu e neaparat cel mai valid. Eu de exemplu sunt mai rapid cu vim cand trebuie sa repar un server crapat, pentru ca il cunosc. Sunt de acord ca daca n-ai experienta cu vim mai mult te incurca decat te ajuta, dar asta nu inseamna ca nu poate fi un tool util. As spune chiar ca, cu cunostintele necesare, poti sa faci treaba mult mai rapid in vim decat in nano. Pe de alta parte, e si ridicol sa stai cateva saptamani sa intelegi cum functioneaza vim daca nu ai un interes in directia asta, doar sa poti sa editezi repede fisierul care crapa odata pe an.

Cand am zis ca nu e un editor obisnuit, m-am referit mult mai departe decat ceva gen nano. Face lucrurile diferit fata de orice editor „standard” de prin ide-uri, pagini web sau orice alt loc pe unde mai apar editoare.

Din pacate, destul de multe comunitati au un set de useri destul de pasionati si care se cred buricul pamantului.

Gigel Anonimu' a scris

Am trecut pe ViM dupa ce am experimentat cu Emacs si mi-a paradit degetele cu Ctrl. Folosesc ViM (sau mai curand schema de navigatie) de vreo 2 ani si mai bine. Faptul ca poti sa misti cursorul stanga/dreapta/sus/jos doar cu un singur key de pe home row (fara sa trebuiasca sa folosesti arrow keys) e minunat. Restul de combo-uri nu mai zic.
N-as trece inapoi la Emacs sau un editor normal nici picat cu ceara.
Cand am facut trecerea la Linux faptul ca stiam (putin) ViM a ajutat enorm – orice editez in consola, editez cu ViM – super rapid si eficient.
Dar cu toate astea sunt inca un novice in Vim. Mi-e frica de .vimrc. Nu folosesc plugin-uri. Etc. Probabil sunt la fel ca 80% din toti utilizatorii de Vim.

Dar am inceput sa citesc „Practical Vim, 2nd edition” si sunt mind blown. Bai prietene, asta-i nu editor de text, e fucking OZN. Stie sa si spele vase, stie sa faca si de mancare. :))

De exemplu daca sunt cu cursorul pe un numar si tastez „22 Ctrl+a” imi creste numarul cu 22. Daca apas Ctrl+x imi scade cu 22. Whaaaat??? Nici macar nu trebuie sa fiu pe numar, ci pe linia unde este numarul sau inainte lui. Si asta-i doar un trick marunt. Am senzatia ca ma asteapta multe alte minuni.

Si pentru cei ce cred ca e arcane sau ca n-o sa aiba nevoie de puterea vim – uite un exemplu de editare text recent in care cu Vim mi-a luat 30 secunde, fara Vim mi-ar fi luat vreo 5 minute sau mai mult:
-am vreo 100 de linii de text
Fiecare linie contine un anumit cuvant in semicolons (diferit pe fiecare linie). Vreau sa iau cuvantul ala de la inceput (dar fara semicolons) si sa-i dau paste intr-o anumita locatie (inlocuind cuvantul respectiv cu cuvantul meu) de la sfarsitul liniei (cu vreo 3 cuvinte inainte).

Ce faci fara Vim? Copy/paste ca ursu’ de vreo 100 de ori.
Ce faci cu Vim? Pai simplu. Ma duc pe prima linie si incep inregistrarea in registrul „a” . Apoi ii zic sa mearga la inceputul liniei si sa-mi copie primul cuvant dintre semicolons, fara semicolons. .Apoi ii zic sa mearga la sfarsitul liniei si exact 3 cuvinte mai in spate . Apoi ii zic sa stearga cuvantul dummy si in locul lui sa dea paste la cuvantul copiat anterior . Apoi ii zic sa mearga mai jos cu o linie . Apoi opresc inregistrarea .
Acum pot sa-i dau replay cu si imi repeta toate actiunile de mai sus in mod inteligent. Acu’ pot sa-i zic sa repete ultimul replay cu @@.
In momentul de fata as putea sa apas „@@” de 99 de ori – tot as fi mai rapid decat facand copy/paste cu mouse-ul. Dar nu trebie sa fac asta.
Tot ce fac este sa apas „99@@” si Vim repeta recording-ul meu de 99 de ori. Job done in mai putin de 30 de secunde.
Imagineaza-ti ca ai 1000 de linii care trebuie modificate in felul asta. Ce faci, scrii un script? Fuck no, Vim tata. Vim saves the day.

Adaugă un comentariurăspuns pentru

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter