Sizi ayağa qaldırmağa və qaçmağa kömək edəcək əsas Vim əmrləri

Mikey ilə tanış olun:

Maykini sonuncu dəfə görəndə o, limonad stendinin gündəlik satış rəqəmlərini izləməkdə ona kömək etmək üçün proqramlaşdırmadan istifadə edən, sadəcə olaraq, həvəsli bir iş adamı idi. Maykinin keçmiş sərgüzəştləri haqqında daha çox oxuya bilərsiniz burada.

Məlum olub ki, Mikey ilk layihəsindən o qədər həzz alıb ki, o, indi bütün boş vaxtını biznesinin demək olar ki, hər bir tapşırığını idarə edən kodu yazmağa sərf edir. Bu gün məktəbdə Mikey 7-ci sinif şagirdlərinin Vim adlı bir şey haqqında danışdıqlarını eşitdi, lakin bu barədə heç nə bilmir. Mikey Google-a gedir və daha çox məlumat əldə etməyə çalışır.

Vim nədir?

Mikey tapdıqlarına təəccüblənir. Məlum oldu ki, Vim, çox güclü olsa da, mətn redaktorundan başqa bir şey deyil. Təəssüf ki, Vim-dən istifadə edən Mikey üçün bir az öyrənmə əyrisi var, lakin Mikey Google-da cəhd etmək istədiyi bəzi əsas əmrləri tapdı. Gəlin Mikey ilə birlikdə kodlayaq və bu Vimin nə olduğunu görək.

Vim daxil edilir

Vim-ə daxil olmaq olduqca sadədir. Sadəcə terminalınız vasitəsilə qovluğa gedin və komanda xəttinə vim insert_file_name_here daxil edin. Bu, faylınızı Vim-də açacaq.

Daxil/Əmr Rejimi

Vim açıldığında Komanda rejimindədir. Komanda rejimində olmaq sizə Vim əmrləri ilə mətninizi idarə etməyə və redaktə etməyə imkan verəcək. Standart mətn redaktoru kimi istifadə etməyə çalışdığınızı fərz etsək, o, həmişə gözlədiyiniz kimi hərəkət etmir. Bu yazıda bir neçə məqam var ki, orada sizin faylınıza köçürmək/yapışdırmaq üçün mətn olacaq. Kopyalanmış mətninizi yapışdırmağa gedərkən i düyməsini klikləməklə Daxiletmə rejiminə daxil olduğunuzdan əmin olun. Gəlin faylımıza insert mətn daxil edək:

Three words.
Two WORDs…!

Daxiletmə rejimində olarkən adi şəkildə kopyalayıb yapışdıra bilərsiniz. Komanda rejiminə yenidən daxil olmaq üçün esc düyməsini sıxmaq kifayətdir.

h/j/k/l Əmrləri

Vim əmr rejiminin daxilində və ya xaricində siçana bizim öyrəşdiyimiz kimi cavab vermir. Nəticədə, naviqasiya klaviatura vasitəsilə həyata keçirilir. Vim klaviatura yönlü oxlarına cavab versə də, h/j/k/l əmrlərinə alışmaq ən yaxşı təcrübədir:

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

Hazırda baxdığınız faylda h/j/k/l əmrlərindən hər hansı birini istifadə etməyə cəhd edin. Kursoru hərəkət etdirə bilmək yaxşı başlanğıcdır, lakin hər dəfə bir boşluq hərəkət etdirmək çox səmərəli deyil. Kursoru eyni anda birdən çox boşluğa köçürməyin bir neçə yoluna baxaq

'WORD' vs 'word'

İrəliyə getməzdən əvvəl qeyd etmək lazımdır ki, aşağıdakı əmrlərdən bir neçəsi “sözlər” və “SÖZLƏR” arasında hərəkət etmək üçün nəzərdə tutulub. VIM Adventures tərəfindən müəyyən edildiyi kimi sözlər və SÖZLƏR arasındakı fərqi sınamaq və ayırd etmək üçün Mikey ilə bir dəqiqənizi ayırın:

  • Söz ağ boşluq (boşluqlar, nişanlar, EOL) ilə ayrılmış hərflər, rəqəmlər və alt xəttlər ardıcıllığından və ya digər boş olmayan simvolların ardıcıllığından ibarətdir. Boş sətir də söz sayılır.

Three words.

  • SÖZ ağ boşluq (boşluqlar, nişanlar, EOL) ilə ayrılmış boş olmayan simvollar ardıcıllığından ibarətdir. Boş sətir də SÖZ sayılır

Two WORDS…!

‘w’ vs ‘W’

W və W əmrləri müvafiq olaraq sözlər və WORDS üzərində hərəkət edəcək.

w əmri kursoru növbəti sözün əvvəlinə irəli aparacaq. Əvvəlki söz nümunəmizə baxaq:

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

İndi isə əvvəlki WORD nümunəmizə baxaq:

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

Mikey ilə yeni w/W əmrlərini sınaqdan keçirin.

‘e’ vs ‘E’

e və E əmrləri w/W əmrinə bənzər tərzdə işləyir, istisna olmaqla, e/E kursoru növbəti sözün başlanğıcına deyil, sonuna irəli aparacaq. Mikey e/E əmrlərini sınamaq üçün mətn faylına aşağıdakıları əlavə edir. Onunla bunu edək:

sugar-free gum

‘b’ vs ‘B’

w/W əmrlərinin sizi növbəti sözün/WORD-un əvvəlinə necə aparacağını xatırlayın? b/B əmrləri sizi əvvəlki sözün/WORD-un əvvəlinə aparacaq. Mikey bu növbəti nümunəni mətn faylına əlavə edəcək və w/W, e/E və b/B əmrlərinin hər birini istifadə etməyə çalışacaq. Onunla edəcəksən?

Tuesday’s doctor appt.

‘0’ vs ‘$’

Sözdən sözə sıçrayış mütləq faydalı olacaq, amma kursorumuzu sətrin əvvəlindən sətrin sonuna qədər tutmaq istəsək necə olar? Alternativ olaraq, kursorumuz xəttin sonunda olarkən sətrin əvvəlinə qayıtmaq istəsək necə olar? Söz-söz atlama bir neçə düyməni basa bilər. Xoşbəxtlikdən, bizdə 0 və $ nömrəli əmrlər var. Maykinin etdiyi kimi edin və aşağıdakıları mətn faylınıza kopyalayın/yapışdırın, sonra əvvəlki əmrlərdən hər hansı biri ilə birlikdə 0/$ əmrlərindən istifadə edərək faylda naviqasiya etməyə çalışın:

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’

X əmri kursor mövqeyindən sonrakı boşluğu silməyə imkan verir. X əmri kursor mövqeyindən əvvəlki boşluğu silir. Mikey x/X əmrləri ilə sınaqdan keçirmək üçün aşağıdakıları mətn faylına köçürməyə gedir. Bundan sonra baş verənlər sizi şoka salacaq...

You’ll never get away with this!!!

‘dd’

Söz-sözlə naviqasiya bir az səy tələb edə bildiyi kimi, eyni şeyi x/X əmrləri üçün də demək olar. Tək bir simvolun silinməsi, şübhəsiz ki, daxil olmaq istədiyimiz bir şeydir, lakin əmr öz başına silməkdə çox təsirli deyil. dd əmrinin yerinə yetirilməsi bizə cəmi 2 düymə basmaqla bütün sətri silməyə imkan verir (birinci d silmə əmrini çağırır, ikincisi onu cari sətirə tətbiq edir). Mikey aşağıdakıları öz mətn faylına köçürür və yapışdırır, sonra dd əmri ilə sınaqdan keçirməyə çalışır (mətn itəndə narahat olmayın. Biz bunu ikinci dəfə həll edəcəyik):

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.

'dd' əmri kursorun yerindən asılı olmayaraq bütün sətri siləcək.

geri qaytarın/yenidən edin

Mikey o qədər həyəcanlandı ki, bütün mətnini sildi. Böyüklük yoxdur. Silmə xətti əməliyyatlarımızı geri qaytaraq. Mikey geri qaytarmaq istədiyi hər bir hərəkət üçün sadəcə olaraq u (Əmr rejimində olarkən) daxil olur. Redo əmri CTRL + r ilə istifadə edilə bilər. Dəyişikliklərimizi geri qaytaraq ki, mətnimizi geri ala bilək.

Zəncirvari Vim Əmrləri

Mikey Vim bacarıqları haqqında olduqca yaxşı hiss edir. O, həmin gün günortadan sonra oynadıqları zaman onları dostu Tommiyə nümayiş etdirmək qərarına gəlir, lakin Tommi bundan təsirlənmir. O, Mikeyə deyir ki, konsepsiya çox gözəl olsa da, etdiyi işlərin heç biri Atom və ya Sublime kimi mətn redaktorundan istifadə etməkdən daha səmərəli deyil. Mikey Tommy-nin haqlı olduğunu başa düşür və onun bütün Vim təcrübəsinin boşuna olduğunu hiss edir. Yazıq Mikey.

İndi günəş batmaq üzrədir və Tommy evə getməlidir, lakin Mikey hələ də Vim haqqında düşünür. Mikey ağlına çılğın bir fikir gələndə Vimdən birdəfəlik imtina etməyə hazırdır. O, mətn faylını Vim ilə açır, faylında bir söz tapır və bu əmri daxil edir:

2W

Maykinin kursoru indi irəlidə olan 2 SÖZ sözünün əvvəlinə doğru irəliləyir. Mikey başqa bir əmri sınayır:

5x

İndi Mikey kursordan sonrakı 5 boşluğu sildi. Mikey indi dəli bir şey etməyə çalışır:

5dw

İndi Mikey kursorundan sonrakı 5 sözü silib. O, aldatmağa davam edir və zəncirlə bağladığı bəzi Vim üsullarını qeyd edir:

  • [count], w/W : e/E : b/B : h/j/k/l — [count] əmrini neçə dəfə yerinə yetirir
  • d [count] w/W : e/E : b/B : h/j/k/l — əmr hərəkətinə uyğun olaraq silir [count] dəfələrin sayı
  • d 0/$- kursorla xəttin əvvəli/sonu arasındakı hər şeyi silir

O, daha çox tapılacağına əmindir, lakin əmindir ki, burada olan şeylər onu Vim-i mətn fayllarını redaktə etmək üçün əlverişli bir seçim etmək yolunda əldə etmək üçün kifayətdir. Bu, Maykini xoşbəxt edir.

Mikey Vim-dən çıxır və əmindir ki, Vim-dən səmərəli istifadə etmək üçün kifayət qədər əmrlər öyrənəcək. Dəyişiklikləri yadda saxlamadan Vim-dən çıxmaq üçün sadəcə olaraq :q ilə çıxmaq əmrini daxil edin və Komanda Rejimində çıxış edin (fayl onu açdıqdan sonra dəyişdirilibsə, :q! daxil etməlisiniz). Dəyişikliklərinizi saxlamaq üçün çıxmadan əvvəl yaz əmrini daxil edin: :wq.

Maykinin Tommy-nin Vim-in mətni redaktə gücü ilə bağlı qiymətləndirməsini ikinci dəfə təxmin etməyə vadar edəcək bir sıra müxtəlif üsulları tətbiq edəcəyi ikinci hissəni izləyin. Get Mikey!