Comenzi Vim de bază pentru a vă ajuta să începeți să alergați

Faceți cunoștință cu Mikey:

Când l-am văzut ultima oară pe Mikey, era doar un aspirant om de afaceri care folosea programarea pentru a-l ajuta să țină evidența cifrelor zilnice ale vânzărilor pentru standul său de limonadă. Puteți citi mai multe despre aventurile anterioare ale lui Mikey „aici”.

Se pare că lui Mikey i-a plăcut atât de mult primul său proiect încât acum își folosește tot timpul liber pentru a scrie codul care gestionează practic fiecare sarcină a afacerii sale. Astăzi, la școală, Mikey a auzit niște elevi grozavi de clasa a 7-a vorbind despre ceva numit Vim, dar el nu știe nimic despre asta. Mikey merge la Google și încearcă să afle mai multe informații.

Ce este Vim?

Mikey este surprins de ceea ce găsește. Se pare că Vim este, în cea mai mare parte, nimic mai mult decât un editor de text, deși unul extrem de puternic. Din păcate, pentru Mikey, utilizarea Vim vine cu o curbă de învățare, dar Mikey a găsit câteva comenzi de bază pe Google pe care vrea să le încerce. Să codificăm împreună cu Mikey și să vedem despre ce este vorba în acest Vim.

Se intră în Vim

Accesul în Vim este destul de simplu. Pur și simplu navigați la un director prin intermediul terminalului și introduceți vim insert_file_name_here în linia de comandă. Aceasta vă va deschide fișierul în Vim.

Modul de inserare/comandă

Vim este în modul de comandă când se deschide. A fi în modul de comandă vă va permite să navigați și să editați textul cu comenzile Vim. Nu acționează întotdeauna așa cum v-ați aștepta, presupunând că încercați să îl utilizați ca un editor de text standard. Există câteva puncte în această postare în care va fi text pe care să îl copiați/lipiți în fișierul dvs. Pe măsură ce inserați textul copiat, asigurați-vă că intrați în modul Inserare făcând clic pe tasta i. Să insert ceva text în fișierul nostru:

Three words.
Two WORDs…!

Puteți copia și lipi ca de obicei când sunteți în modul Inserare. Pentru a intra din nou în modul de comandă, apăsați pur și simplu tasta esc.

Comenzi h/j/k/l

Vim nu răspunde la mouse așa cum suntem obișnuiți, în interiorul sau în afara modului de comandă. Ca urmare, navigarea tinde să se facă prin tastatură. În timp ce Vim va răspunde la săgețile direcționale de la tastatură, este cea mai bună practică să vă obișnuiți cu comenzile h/j/k/l:

h — moves the cursor one space left
j — moves the cursor one space down
k — moves the cursor one space up
l — moves the cursor one space right

Încercați să utilizați oricare dintre comenzile h/j/k/l din fișierul pe care îl vizualizați în prezent. A putea muta cursorul este un început bun, dar deplasarea câte un spațiu nu este foarte eficientă. Să ne uităm la câteva modalități de a muta cursorul mai mult de un spațiu odată

„CUVENT” vs „cuvânt”

Înainte de a merge mai departe, este important să subliniem că mai multe dintre următoarele comenzi sunt concepute pentru a naviga între „cuvinte” și „CUVINTE”. Luați un moment cu Mikey pentru a încerca să distingeți diferența dintre cuvinte și CUVINTE, așa cum este definită de VIM Adventures:

  • Un cuvânt constă dintr-o secvență de litere, cifre și liniuțe de subliniere sau o secvență de alte caractere care nu sunt goale, separate cu spații albe (spații, tab-uri, EOL). O linie goală este, de asemenea, considerată a fi un cuvânt.

Three words.

  • Un CUVENT constă dintr-o secvență de caractere care nu sunt goale, separate cu spații albe (spații, file, EOL). O linie goală este, de asemenea, considerată a fi un CUVÂNT

Two WORDS…!

‘w’ vs ‘W’

Comenzile w și W se vor deplasa peste cuvinte și, respectiv, CUVINTE.

Comanda w va muta cursorul înainte la începutul cuvântului următor. Să ne uităm la exemplul nostru de cuvânt de mai devreme:

- three w commands will navigate over each of the words below
Three words.

Acum să ne uităm la exemplul nostru WORD de mai devreme:

- two W commands will navigate over each of the WORDs below
Two WORDs…!

Testați noile comenzi w/W cu Mikey.

‘e’ vs ‘E’

Comenzile e și E funcționează într-un mod similar cu cel al w/W, cu excepția faptului că e/E va duce cursorul înainte la sfârșitul al cuvântului următor, mai degrabă decât la început. Mikey adaugă următoarele în fișierul său text pentru a încerca comenzile e/E. Hai sa o facem cu el:

sugar-free gum

‘b’ vs ‘B’

Îți amintești cum comenzile w/W te vor duce la începutul următorului cuvânt/CUVENT? Comenzile b/B vă vor duce la începutul cuvântului/CUvântului anterior. Mikey va adăuga acest exemplu următor în fișierul său text și va încerca să folosească fiecare dintre comenzile w/W, e/E și b/B. O vei face cu el?

Tuesday’s doctor appt.

‘0’ vs ‘$’

Săritul cuvânt în cuvânt va fi cu siguranță util, dar ce se întâmplă dacă dorim să obținem cursorul de la începutul unei linii până la sfârșitul unei linii? Alternativ, ce se întâmplă dacă vrem să revenim la începutul liniei în timp ce cursorul nostru se află la sfârșitul unei linii? Săritul cuvânt cu cuvânt poate necesita mai multe apăsări de taste. Din fericire, avem comenzile cu numărul 0 și $. Faceți așa cum face Mikey și copiați/lipiți următoarele în fișierul text, apoi încercați să navigați în fișier folosind comenzile 0/$ împreună cu oricare dintre comenzile anterioare:

Fourscore and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.

‘x’ vs ‘X’

Comanda x ne permite să ștergem spațiul care urmează poziției cursorului. Comanda X șterge spațiul care precede poziția cursorului. Mikey merge să copieze următoarele în fișierul său text pentru a experimenta cu comenzile x/X. Ce se întâmplă în continuare te va șoca...

You’ll never get away with this!!!

‘dd’

În felul în care navigarea cuvânt cu cuvânt poate necesita destul de mult efort, același lucru se poate spune și pentru comenzile x/X. Ștergerea unui singur caracter este cu siguranță ceva la care dorim să avem acces, dar comanda în sine nu este foarte eficientă la ștergere. Executarea comenzii dd ne permite să ștergem o linie întreagă cu doar 2 apăsări de taste (primul d invocă comanda de ștergere, al doilea o aplică liniei curente). Mikey copiază și lipește următoarele în fișierul său text, apoi încearcă să experimenteze cu comanda dd (nu vă faceți griji când textul dvs. dispare. Ne vom ocupa de asta în secunda):

All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.

Comanda „dd” va șterge întreaga linie, indiferent de locația cursorului.

anulați/refaceți

Mikey a fost atât de entuziasmat încât și-a șters tot textul. Nu mare lucru. Să anulăm acțiunile noastre de ștergere a liniei. Mikey introduce pur și simplu u (în timp ce se află în modul Command) pentru fiecare acțiune pe care ar dori să o anuleze. Comanda redo poate fi folosită cu CTRL + r. Să ne anulăm modificările, astfel încât să ne putem recupera textul.

Înlănțuirea comenzilor Vim

Mikey se simte destul de bine în privința abilităților lui Vim. El decide să le arate prietenului său Tommy în timp ce se joacă în acea după-amiază, dar Tommy nu este impresionat. El îi spune lui Mikey că, deși conceptul este cool, nimic din ceea ce face nu se dovedește a fi mai eficient decât utilizarea unui editor de text precum Atom sau Sublime. Mikey își dă seama că Tommy avea dreptate și simte că toată practica lui Vim a fost degeaba. Sărmanul Mikey.

Până acum soarele apune și Tommy trebuie să plece acasă, dar Mikey încă se gândește la Vim. Mikey este aproape gata să renunțe definitiv la Vim când are o idee nebună. El își deschide fișierul text cu Vim, găsește un cuvânt în fișierul său și introduce această comandă:

2W

Cursorul lui Mikey se deplasează acum înainte la începutul cuvântului 2 CUVINTE înainte. Mikey încearcă o altă comandă:

5x

Acum Mikey a șters cele 5 spații care urmează cursorului. Mikey încearcă ceva nebunesc acum:

5dw

Acum Mikey a șters cele 5 cuvinte care urmează cursorului său. El continuă să păcălească și ia notă de unele dintre metodele Vim pe care le-a legat împreună:

  • [numărare], w/W : e/E : b/B : h/j/k/l — execută comanda [numărătoare] de câte ori
  • d [număr] w/W : e/E : b/B : h/j/k/l — șterge în funcție de acțiunea de comandă [număr] de numărul de ori
  • d 0/$- șterge tot ce se află între cursor și începutul/sfârșitul unei linii

El este sigur că mai sunt multe de găsit, dar este încrezător că ceea ce are aici este suficient pentru a-l face să facă din Vim o opțiune viabilă pentru editarea fișierelor sale text. Asta îl face pe Mikey fericit.

Mikey se deconectează de la Vim și este sigur știind că în cele din urmă va învăța suficiente comenzi pentru a utiliza eficient Vim. Pentru a părăsi Vim fără a salva nicio modificare, pur și simplu introduceți comanda quit cu :q pentru a ieși în modul Command (poate fi necesar să introduceți :q! dacă fișierul a fost modificat de la deschiderea acestuia). Pentru a salva modificările, introduceți comanda de scriere înainte de a ieși, astfel: :wq.

Rămâneți cu ochii pe partea a doua, în care Mikey va implementa o serie de metode diferite care îl vor face pe Tommy să ghicească din nou evaluarea sa asupra puterii de editare a textului a lui Vim. Du-te Mikey!