Vim pamata komandas, lai palīdzētu jums sākt darboties

Iepazīstieties ar Maiku:

Kad mēs pēdējo reizi redzējām Maiku, viņš bija tikai topošs uzņēmējs, kurš izmantoja programmēšanu, lai palīdzētu viņam sekot līdzi viņa limonādes stenda ikdienas pārdošanas rādītājiem. Vairāk par Maika pagātnes piedzīvojumiem var lasīt šeit.

Izrādās, ka Maikijam tik ļoti patika savs pirmais projekts, ka viņš tagad izmanto visu savu brīvo laiku, lai uzrakstītu kodu, kas pārvalda praktiski katru viņa biznesa uzdevumu. Šodien skolā Maikijs dzirdēja, ka daži forši 7. klases skolēni runāja par kaut ko, ko sauc par Vimu, bet viņš par to neko nezina. Maikijs dodas uz Google un mēģina uzzināt vairāk informācijas.

Kas ir Vim?

Maikijs ir pārsteigts par atrasto. Izrādās, ka Vim lielākoties nav nekas vairāk kā teksta redaktors, kaut arī ārkārtīgi spēcīgs. Diemžēl Maikijam, izmantojot Vim, ir nedaudz jāmācās, taču Maikijs Google tīklā atrada dažas pamata komandas, kuras viņš vēlas izmēģināt. Kodēsim kopā ar Maiku un redzēsim, kas ir šis Vims.

Ievadot Vim

Nokļūšana Vimā ir pavisam vienkārša. Vienkārši dodieties uz direktoriju, izmantojot savu termināli, un komandrindā ievadiet vim insert_file_name_here. Tas atvērs jūsu failu programmā Vim.

Ievietošanas/komandu režīms

Vim ir komandu režīmā, kad tas tiek atvērts. Atrodoties komandu režīmā, varēsit pārvietoties un rediģēt tekstu, izmantojot Vim komandas. Tas ne vienmēr darbojas tā, kā jūs varētu gaidīt, pieņemot, ka mēģināt to izmantot kā standarta teksta redaktoru. Šajā ziņojumā ir daži punkti, kuros būs teksts, ko kopēt/ielīmēt failā. Ielīmējot kopēto tekstu, noteikti pārejiet uz ievietošanas režīmu, noklikšķinot uz taustiņa i. Ieliksim insert kādu tekstu mūsu failā:

Three words.
Two WORDs…!

Ievietošanas režīmā varat kopēt un ielīmēt kā parasti. Lai atgrieztos komandu režīmā, vienkārši nospiediet taustiņu esc.

h/j/k/l komandas

Vim nereaģē uz peli tā, kā mēs esam pieraduši, komandu režīmā vai ārpus tā. Tā rezultātā navigācija tiek veikta, izmantojot tastatūru. Lai gan Vim reaģēs uz tastatūras virziena bultiņām, vislabāk ir pierast pie komandām 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

Mēģiniet izmantot jebkuru no h/j/k/l komandām failā, kuru pašlaik skatāt. Spēja pārvietot kursoru ir labs sākums, taču pārvietošana pa vienu vietu nav īpaši efektīva. Apskatīsim dažus veidus, kā pārvietot kursoru vairāk nekā vienu vietu vienlaikus

WORD salīdzinājumā ar vārdu

Pirms turpināt, ir svarīgi norādīt, ka vairākas no tālāk norādītajām komandām ir paredzētas, lai pārvietotos starp “vārdiem” un “VĀRDIEM”. Veltiet laiku kopā ar Maiku, lai mēģinātu atšķirt vārdu un VĀRDI atšķirības, kā to definējis VIM Adventures:

  • Vārds sastāv no burtu, ciparu un pasvītru secības vai citu rakstzīmju, kas nav tukšas, secības, atdalītas ar atstarpēm (atstarpes, tabulēšanas zīmes, EOL). Arī tukša rinda tiek uzskatīta par vārdu.

Three words.

  • VĀRDS sastāv no netukšu rakstzīmju secības, kas atdalītas ar atstarpēm (atstarpes, tabulēšanas zīmes, EOL). Arī tukša rinda tiek uzskatīta par VĀRDU

Two WORDS…!

‘w’ vs ‘W’

Komandas w un W pārvietosies attiecīgi virs vārdiem un VĀRDIEM.

Komanda w pārvietos kursoru uz priekšu uz nākamā vārda sākumu. Apskatīsim mūsu vārdu piemēru no agrāk:

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

Tagad apskatīsim mūsu WORD piemēru no agrāk:

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

Izmēģiniet jaunās w/W komandas ar Mikey.

‘e’ vs ‘E’

Komandas e un E darbojas līdzīgi kā w/W, izņemot to, ka e/E virzīs kursoru uz priekšu uz nākamā vārda beigām, nevis uz sākumu. Maikijs savam teksta failam pievieno tālāk norādīto, lai izmēģinātu e/E komandas. Darīsim to kopā ar viņu:

sugar-free gum

‘b’ vs ‘B’

Atcerieties, kā komandas w/W aizvedīs uz nākamā vārda/WORD sākumu? Komandas b/B aizvedīs uz iepriekšējā vārda/WORD sākumu. Maikijs pievienos šo nākamo piemēru savam teksta failam un mēģinās izmantot katru no komandām w/W, e/E un b/B. Vai tu to darīsi ar viņu?

Tuesday’s doctor appt.

‘0’ vs ‘$’

Pārlēkšana no vārda uz vārda noteikti noderēs, bet kā būtu, ja mēs vēlamies nokļūt kursorā no rindas sākuma līdz rindas beigām? Alternatīvi, ko darīt, ja mēs vēlamies atgriezties rindas sākumā, kamēr kursors atrodas rindas beigās? Pārlēkšana vārdu pa vārdam var aizņemt vairākus taustiņsitienus. Par laimi mums ir komandas numurs 0 un $. Rīkojieties tā, kā to dara Maikls, un kopējiet/ielīmējiet tālāk norādīto savā teksta failā, pēc tam mēģiniet pārvietoties failā, izmantojot komandas 0/$ kopā ar jebkuru no iepriekšējām komandām:

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’

Komanda x ļauj izdzēst atstarpi pēc kursora pozīcijas. X komanda izdzēš atstarpi pirms kursora pozīcijas. Maikijs iekopē tālāk norādīto savā teksta failā, lai eksperimentētu ar x/X komandām. Tas, kas notiks tālāk, jūs šokēs…

You’ll never get away with this!!!

‘dd’

Tādā veidā, ka navigācija pa vārdam var prasīt diezgan daudz pūļu, to pašu var teikt par x/X komandām. Atsevišķas rakstzīmes dzēšana noteikti ir kaut kas, kam mēs vēlamies piekļūt, taču komanda pati par sevi nav ļoti efektīva dzēšanai. Komandas dd izpilde ļauj izdzēst visu rindu tikai ar 2 taustiņsitieniem (pirmais d izsauc dzēšanas komandu, otrais to piemēro pašreizējai rindai). Maikijs kopē un ielīmē tālāk norādīto savā teksta failā, pēc tam mēģina eksperimentēt ar komandu dd (neuztraucieties, ja jūsu teksts pazūd. Mēs par to parūpēsimies pēc tam):

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.

Komanda “dd” izdzēsīs visu rindu neatkarīgi no kursora atrašanās vietas.

atsaukt/atcelt

Maikijs bija tik sajūsmā, ka izdzēsa visu savu tekstu. Nekāds prāts. Atcelsim rindiņas dzēšanas darbības. Maikijs vienkārši ievada u (komandu režīmā) katrai darbībai, kuru viņš vēlas atsaukt. Redo komandu var izmantot ar CTRL + r. Atcelsim veiktās izmaiņas, lai varētu atgūt tekstu.

Vim komandu ķēde

Maikijs jūtas diezgan labi par savām Vima prasmēm. Viņš nolemj tos parādīt savam draugam Tomijam, kad viņi tajā pēcpusdienā spēlē, bet Tomijs nav pārsteigts. Viņš stāsta Maikijam, ka, lai gan koncepcija ir forša, nekas no viņa darbības nav izrādījies efektīvāks par tādu teksta redaktoru kā Atom vai Sublime izmantošana. Maikijs saprot, ka Tomijam bija taisnība, un uzskata, ka visa viņa Vim prakse bija veltīga. Nabaga Maikijs.

Šobrīd saule riet un Tomijam jādodas mājās, bet Maikijs joprojām domā par Vimu. Maikijs ir gandrīz gatavs uz visiem laikiem atteikties no Vima, kad viņam rodas traka ideja. Viņš atver savu teksta failu ar Vim, atrod vārdu savā failā un ievada šo komandu:

2W

Maika kursors tagad virzās uz priekšu uz vārda sākumu 2 VĀRDUS uz priekšu. Maikijs izmēģina citu komandu:

5x

Tagad Maikijs ir izdzēsis 5 atstarpes, kas seko kursoram. Maikijs tagad izmēģina kaut ko traku:

5dw

Tagad Maikijs ir izdzēsis 5 vārdus, kas seko viņa kursoram. Viņš turpina muļķoties un ņem vērā dažas Vim metodes, kuras viņš ir saķēdējis kopā:

  • [count], w/W : e/E : b/B : h/j/k/l — izpilda komandu [count] reižu skaits
  • d [count] w/W : e/E : b/B : h/j/k/l — dzēš atbilstoši komandas darbībai [count] reižu skaits
  • d 0/$- dzēš visu, kas atrodas starp kursoru un rindas sākumu/beigām

Viņš ir pārliecināts, ka ir vēl daudz ko atrast, taču viņš ir pārliecināts, ka ar to, kas viņam šeit ir, pietiek, lai padarītu Vimu par piemērotu teksta failu rediģēšanas iespēju. Tas iepriecina Maiku.

Maikijs atsakās no Vim un ir drošs, zinot, ka galu galā viņš iemācīsies pietiekami daudz komandu, lai efektīvi izmantotu Vim. Lai aizvērtu Vim, nesaglabājot nekādas izmaiņas, vienkārši ievadiet quit komandu ar :q, lai izietu komandu režīmā (ja fails kopš tā atvēršanas ir mainīts, iespējams, būs jāievada :q!). Lai saglabātu izmaiņas, pirms aizvēršanas ievadiet rakstīšanas komandu, piemēram: :wq.

Sekojiet līdzi otrajai daļai, kurā Maikls ieviesīs vairākas dažādas metodes, kas liks Tomijam uzminēt viņa vērtējumu par Vima teksta rediģēšanas spējām. Ej Maikij!