Kā kartēt atslēgas programmā Vim

Ka Kartet Atslegas Programma Vim



Programmā Vim taustiņu kartēšana ir process, kurā noteiktai atslēgai tiek piešķirta taustiņu vai komandu kopa, lai veiktu noteiktu uzdevumu. Piemēram, lai atlasītu visas rindiņas failā, ko izmantojat, ggVG komandu, un, lai to izdarītu, ir jānospiež četri taustiņi. Kā darīt ar vienu taustiņu? Šeit noder Vim taustiņu kartēšana. Taustiņu kartēšana ir veids, kā automatizēt daudzus bieži veiktos uzdevumus programmā Vim. Un jūs noteikti esat par to dzirdējuši; ja jūs darāt kaut ko vairāk nekā divas reizes, automatizējiet to!

Šajā visaptverošajā rokasgrāmatā es paskaidrošu, kā kartēt Vim atslēgas, lai automatizētu darbības. No pamata atslēgu kartes izveides līdz uzlabotai atslēgu kartēšanai, kā arī to pastāvīgas padarīšanas un noņemšanas procesiem.

Sintakse

Lai kartētu atslēgu programmā Vim, tiek izmantota šāda sintakse:







karte



Iepriekš minētajā sintaksē:



karte nmap, imap, vmap, xmap, cmap vai omap
* , ,

* Iepriekš minētajā sintaksē sadaļa nav obligāta.

Vim īpašie argumenti

Vim īpašie argumenti ir atzīmes, ko izmanto, lai piešķirtu papildu funkcionalitāti taustiņu kartēm. Šie argumenti parādās aiz komandas :map un pirms {rhs} un {lhs}.



Piemēram, lai kartes buferis būtu specifisks, izmantojiet īpašo argumentu šādā veidā:

:karte < buferis > < C-a > ggVG
Lai izslēgtu atbalsotos ziņojumus no taustiņu kartes
Lai kartes buferis būtu specifisks (unikāls pašreizējam buferim)
Lai norādītu, ka karte ir skripta vai spraudņa daļa
<īpašs> *To izmanto, lai definētu īpašos taustiņus kartēšanai, izmantojot <> apzīmējumu (funkciju taustiņi, vadīklas, pārslēgšanas un citi taustiņi, kas nav alfabētiski)
Tas norāda, ka kartējuma kreisā puse ir izteiksme, un tā ir jānovērtē, lai iegūtu labo pusi
Padarīt karti unikālu starp vietējām un globālajām kartēm
Lai izlaistu nākamās komandas rakstzīmes gaidīšanu kartē

Vim īpašie taustiņu apzīmējumi ir minēti nākamajā attēlā.

Piemēram, ja taustiņu kartēšanā vēlaties izmantot atstarpes taustiņu, tiks izmantots apzīmējums .

Pamata taustiņu kartes izveide programmā Vim

Sapratīsim Vim taustiņu kartēšanu ar pamata piemēru. Es vēlos kartēt komandu atlasīt visas līnijas ( ggVG ) uz ctrl+a atslēgas. Lai kartētu taustiņus ctrl+a, programmā Vim izpildīšu šādu komandu.

:karte < C-a > ggVG

Šeit, apzīmē ctrl un a atslēgas, kamēr ggVG ir komanda, lai atlasītu visas faila rindas. The :karte atslēgvārds pēc noklusējuma ir paredzēts parastā režīma kartēšanai, tomēr :nmap var arī tieši izmantot normāli režīmā.

Līdzīgi, lai kartētu rindas numuru, pārslēdziet funkcionalitāti ar F1 atslēgas izmantošana:

:karte < F1 > :iestatīt numuru !

Tagad, nospiežot taustiņu F1, līnijas numurs tiks iespējots, un, nospiežot to vēlreiz, tas tiks atspējots.

Ņemiet vērā, ka šī metode kartēs tikai pašreizējā bufera atslēgas un tiks noņemta, aizverot buferi.

Taustiņu karšu uzskaitīšana

Lai uzskaitītu visus parastā, vizuālā un operatora gaidīšanas režīma taustiņu kartējumus, izmantojiet komandu :map.

:karte

Lai uzskaitītu taustiņu kartēšanu ievietot un komandrinda režīmus, izmantojiet :map! Pavēli.

:karte !

Lai uzskaitītu noteikta režīma taustiņu kartēšanu, vienkārši ierakstiet režīma sākuma burtu pirms kartes atslēgvārda.

:nmap Lai parādītu parastā režīma kartes
:imap Lai parādītu ievietošanas režīma kartes
:vmap Lai parādītu vizuālā kartes un izvēlieties režīmu
:smap Lai parādītu atlases režīma kartes
:xmap Lai parādītu vizuālā režīma kartes
:cmap Lai parādītu komandrindas režīma kartes
:omap Lai parādītu operatora gaidīšanas režīma kartes

Turklāt, lai uzskaitītu visas kartes, tostarp spraudņu kartes ar ceļiem, izmantojiet :verbose karte komandu.

:verbose karte

Konkrētai atslēgai vienkārši nosauciet atslēgu komandā ( :verbose map ).

Taustiņu karšu padarīšana par pastāvīgu

Iepriekšējā sadaļā minētās taustiņu kartes kartēs atslēgas tikai pašreizējā buferī. Lai Vim atslēgu kartējumi būtu pastāvīgi, kartes ir jāievieto vimrc failā.

Ņemiet vērā, ka, ievietojot taustiņu karti vimrc failu, nepievienojiet kolu (:) pirms karte komandu.

Pēc taustiņu kartes ievietošanas vimrc failu, saglabājiet un aizveriet to, izmantojot komandu :wq vai taustiņus Shift+zz. Mapē ievietotās taustiņu kartes vimrc fails būs globāls un to var izmantot visās Vim sesijās. Tomēr noteiktas taustiņu kartes var īslaicīgi atspējot, ja tās ietekmē darbu pašreizējā sesijā, skatiet tālāk sadaļu Kā noņemt taustiņu karti programmā Vim.

The vimrc ir Vim iestatījumu fails, kas satur dažādas komandas un iestatījumus. Tas atrodas /usr/share/vim/ direktorijā macOS un /etc/vim operētājsistēmā Linux. Ir svarīgi atzīmēt, ka vimrc faili minētajos direktorijos ir sistēmai specifiski faili. Varat arī rediģēt šos failus atslēgu kartēšanai, taču es ieteiktu izveidot lietotājam raksturīgu vimrc failu mājas direktorijā.

Izvairīšanās no rekursijas

Pirms virzības uz priekšu, ir svarīgi uzzināt par rekursiju Vim taustiņu kartēšanā. Tās trūkumi un kā to novērst. To var saprast, izmantojot piemēru.

:karte dd 3jdd

Iepriekš minētajā piemērā esmu kartējis dd taustiņus, lai pārvietotos uz leju par 3 rindām un dzēstu rindiņu zem kursora. Tagad, kad es nospiežu dd , tas mēģinās izpildīt karti 3jdd . Vim interpretēs dd komandu kā karti un atkārtoti izpildiet karti, kā parādīts nākamajā attēlā.

Piezīme : Rekursija var iesaldēt Vim redaktoru. Lai to atsaldētu, nospiediet ctrl+c atslēgas.

Lai izvairītos no atkārtošanās, nomainiet karte atslēgvārds ar noremap , kur ' nore ' nozīmē nerekursīvs . Es nomainīšu karte atslēgvārds ar noremap lai labotu rekursiju iepriekš minētajā taustiņu kartē.

:noremap dd 3jdd

Ieteikšu lietot noremap tā vietā karte lai izvairītos no nejaušas rekursīvas kartēšanas izveides.

Režīmiem specifisku taustiņu karšu izveide

Vim ir padarījis taustiņu kartēšanu tik daudzpusīgu, ka pat konkrēta režīma taustiņu karti var izveidot diezgan vienkārši. Piemēram, ja esat izveidojis taustiņu shēmu ievietošanas režīmam, izmantojot F1 taustiņu, tad varat kartēt to pašu F1 ievadiet citu režīmu, lai veiktu pilnīgi jaunu darbību.

Nākamajā piemērā esmu kartējis F1 taustiņu, lai izdzēstu 3 rindiņas normāli režīmā un ievelciet 3 rindiņas ievietot režīmā.

:nmap < F1 > 3d
:imap < F1 > < C-t >

Pirmajā kartē tiek dzēstas trīs līnijas parastajā režīmā, nospiežot taustiņu F1, savukārt otrā karte pievieno vienu atkāpi pašreizējā rindā, ievietošanas režīmā, izmantojot to pašu taustiņu. Tagad sapratīsim kartēšanu katrā režīmā.

Parasta režīma kartēšana

Lai lietotu karti parastajā režīmā, izmantojiet tikai nmap atslēgvārds. Piemēram, lai kopētu visas faila rindas, izmantojot ctrl+c taustiņus, es izmantošu šādu komandu.

:nmap < C-c > ggVGy

Kā minēts iepriekš, atslēgas kartēšanai vislabāk ir izmantot nerekursīvu metodi, tāpēc es aizstāšu nmap ar nnoremap atslēgvārds.

:nnoremap < C-c > ggVGy

Novietojiet to bez resnās zarnas (:). vimrc failu, lai padarītu to par pastāvīgu taustiņu karti.

es izmantošu noremap vietā karte nākamajā piemērā.

Ievietot režīma kartēšanu

Lai kartētu taustiņus ievietošanas režīmam, vienkārši izmantojiet i tā vietā n . Piemēram, ievietošanas režīmā ctrl+p un ctrl+n Taustiņi tiek izmantoti, lai automātiski pabeigtu vārdu, pamatojoties uz atbilstību attiecīgi atpakaļ un uz priekšu. Lai kartētu ctrl+p taustiņus ar tabulēšanas taustiņu, es izmantošu šādu komandu.

:inoremap < Tab > < C-p >

Vēl svarīgāk, ja vēlaties kartēt operatora gaidīšanas režīms komandas sadaļā ievietošanas režīms , tad jums jāievieto taustiņu labajā pusē, lai izietu no ievietošanas režīma un izpildītu šīs komandas. Piemēram, nākamajā taustiņu kartē es vēlos izdzēst 3 rindiņas, izmantojot ctrl+x taustiņus un atkārtoti ievadiet ievietošanas režīmu.

:inoremap < C-x > 3ddi

Tagad, kad es nospiežu ctrl+x taustiņi, tas izdrukās 3ddi komandu, nevis to izpildīt.

Lai to labotu, es ievietošu pirms 3ddi komandu.

:inoremap < C-x > < Esc > 3ddi

Tagad komanda izpildīs paturēt mani ievietošanas režīmā.

Daudziem mini klēpjdatoriem trūkst Esc taustiņu, kas ir svarīgi, lai izietu no pašreizējā režīma. Tātad, lai kartētu Esc taustiņu, lai izietu no ievietošanas režīma, var izmantot taustiņu kartēšanu. Nākamajā piemērā es izmantoju piem taustiņus, lai izietu uz parasto režīmu.

:inoremap ex < Esc >

Kad ātri nospiežat piem nospiežot taustiņus, tiks iziets no ievietošanas režīma, tādējādi pārejot parastajā režīmā.

Vizuālā režīma kartēšana

Vizuālais režīms ir ļoti nozīmīgs režīms teksta atlasei Vim redaktorā. Papildus pamata atlasei vizuālajam režīmam ir arī citi dažādi režīmi, piemēram, vizuālās līnijas un vizuālā bloka režīmi.

Vizuālajā režīmā tilde (~) tiek izmantots, lai pārslēgtu lietu. Lai izmantotu tildi (~), ir jānospiež divi taustiņi (shift+~) . Nākamajā piemērā es kartēju taustiņu c vizuālais režīms lai atlasītu vārdu zem kursora un mainītu tā reģistru.

:vnoremap c iw~

Tagad nospiediet v, lai pārietu uz vizuālo režīmu, un nospiediet taustiņu c, lai pārslēgtu vārdu zem kursora, kā parādīts nākamajā GIF.

Komandrindas režīma kartēšana

Daudzas Vim būtiskās komandas darbojas tikai komandrindas režīmā. Piemēram, lai saglabātu failu :Iekšā komanda tiek izmantota līdzīgi, lai saglabātu un izietu :wq tiek izmantota komanda. Visas cilnes un sadalīšanas darbības tiek veiktas arī komandrindas režīmā. Piemēram, lai izveidotu jaunu cilni, : padotais tiek izmantota komanda. Lai ātri izveidotu cilni, ctrl+t pietiek ar atslēgām.

:cnoremap < C-t > priekšmets < CR >

Tagad nospiediet kolu (:), lai pārietu komandrindas režīmā, un pēc tam ctrl+t lai atvērtu jaunu cilni; tas ir daudz ātrāk nekā rakstīt visu priekšmets komandu un Atgriezties taustiņu.

Vim pielāgoto komandu izveide
Komandas režīma ievadīšana, lai izpildītu karti, šķiet mazāk noderīga. Bet jūs varat izveidot savas pielāgotās komandas programmā Vim, izmantojot :pavēle opciju. Šī funkcija ļoti atgādina Vim taustiņu kartēšanu. Piemēram, lai izveidotu ātru komandu rindas numura un teksta platuma iestatīšanai uz 80, izmantojiet šo komandu.

:command Mycmd :set numuru teksta platums = 80

Tagad ievadiet komandu režīmu un izpildiet : Mycmd komandu.

Operatora gaidīšanas režīma kartēšana

Operatora gaidīšanas režīms ir režīms, kurā Vim gaida kustības komandu pēc operatora taustiņa nospiešanas. Parastie operatori ir y, d un c. Piemēram, lai dzēstu pašreizējo rindu un 3 sekojošās rindas, izmantojiet operatoru d ar 3j kustība (d3j). Šos taustiņus nevar nospiest vienlaicīgi, lai veiktu vēlamo darbību.

Režīms parasti tiek izmantots kustību kartēšanai. Kartē kustību, kas atlasīs pašreizējo līniju un 3 rindas, kas tai sekos.

:onoremap < F2 > 3j

Tagad, lai izvilktu pašreizējo rindiņu un 3 rindas, kas tai seko, izmantojiet F2 atslēgas, tādā pašā veidā, d var izmantot arī operatoru.

Vēl viena svarīga lieta, kas jāpatur prātā, ir, ja iepriekš minētajai kartētajai kustībai pievienojat skaitu, teiksim 2 , karte to uztvers kā 23j, nevis 6j. Lai to labotu, var izmantot izteiksmju reģistru “=. Iepriekš minēto karti var mainīt kā @=’3j’ .

:onoremap < F2 > @ ='3j' < CR >

Kā kartēt peles notikumus

Lai gan Vim ir pilnībā pielāgojams uz tastatūru orientēts teksta redaktors, peles funkcionalitātes pieejamība padara to vēl labāku. Papildus parastajiem tastatūras taustiņiem visus peles notikumus var kartēt arī Vim. Piemēram, ja vēlaties kartēt labo dubultklikšķi un kreiso dubultklikšķi, lai pārvietotu atzīmes attiecīgi uz priekšu un atpakaļ, izmantojiet tālāk norādīto kartēšanu.

:noremap < 2 -Labā pele > ] `
:noremap < 2 - Kreisā pele > [ `

Citi peles notikumi, kurus var kartēt, ir norādīti nākamajā tabulā.

<2-kreisā pele>
<2-Labā pele>
<3-Kreisā pele>
<3-Right Mouse>
<4-kreisā pele>
<4-Labā pele>

Kā izveidot karti ar Leader Key programmā Vim

Vim kartēšana ir nepilnīga bez līdera atslēgas. Vadītāja atslēga ir noklusējuma atslēga, ko var izmantot, lai kartētu taustiņus, pat ja tie ir kartēti citu uzdevumu veikšanai. Piemēram, ja esat kartējis d taustiņu, lai dzēstu visas rindas, tad mēs varam kartēt to pašu taustiņu, lai dzēstu tikai 5 rindas, izmantojot līdera taustiņu.

Tiem, kas nav pazīstami ar Vim līdera atslēgu. Tā ir atslēga, kurai pievienots cits taustiņš vai taustiņu kopa komandu vai darbību kartēšanai. Vim noklusējuma līdera atslēga ir slīpsvītra (\), taču tā ir pielāgojama.

Piemēram, dd komanda tiek izmantota, lai izdzēstu rindu zem kursora. Ja vēlaties kartēt dd komandu, lai izdzēstu visas failos esošās rindas, varat izmantot līdera taustiņu.

:noremap < Vadītājs > dd ggVGd

Tagad ikreiz, kad nospiežat \dd taustiņu, visas faila rindas tiks dzēstas. Varat attiecināt Vim līdera atslēgu kā vadības taustiņu operētājsistēmā Windows vai komandas taustiņu operētājsistēmā MacOS.

Kā kartēt Vimscript funkciju

Vim redaktors neaprobežojas tikai ar komandām vai darbībām. Ap Vim ir pieejama visa programmēšanas valoda, lai izveidotu pielāgotu funkcionalitāti ar nosaukumu Vimscript. Varat viegli izveidot skriptu vai funkciju un kartēt to ar taustiņu. Piemēram, izveidosim funkciju, kas iespējos tādus iestatījumus kā rindas numurs, peles funkcionalitāte un teksta platums.

funkciju Mani iestatījumi ( )
komplekts numuru
komplekts pele =a
komplekts teksta platums = 80
beigu funkcija

Ievietojiet šo funkciju vimrc failā.

Kartēsim šo funkciju ar līderi un s taustiņiem. es izmantošu

:noremap < Vadītājs > s: zvaniet uz MySettings ( ) < CR >

Tagad ikreiz, kad nospiežat \s taustiņiem, funkcija tiks izsaukta un tiks izpildīta jebkura funkcionalitāte funkcijā.

Piezīme : Veidojot pielāgotu funkciju programmā Vim, funkcijas nosaukuma pirmais burts vienmēr ir jāraksta ar lielo burtu.

Kā kartēt ārējās komandas programmā Vim

Ārējās komandas var kartēt arī Vim. Ārējās komandas attiecas uz Linux vai Unix komandām. Piemēram, ja vēlaties kartēt ārējo kārtot komandu, lai sakārtotu visas pašreizējā bufera rindas uz F1 taustiņu, izmantojiet šo komandu.

:noremap < F1 > : %! kārtot < CR >

Tādā pašā veidā, ja rakstāt skripta failu un padarāt to izpildāmu, neizejot no Vim sesijas, varat izmantot chmod komanda iekšēji. Piemēram, lai padarītu pašreizējo failu izpildāmu, varat izpildīt komandu :!chmod +x % in Vim. Ja bieži veicat šo uzdevumu, vienkārši kartējiet tam atslēgu.

:noremap < F1 > : ! chmod +x %

Programmā Vim jebkuru ārējo komandu var izmantot ar izsaukuma (!) zīmi.

Kā noņemt taustiņu karti programmā Vim

Lai noņemtu taustiņu kartes programmā Vim, vispirms noskaidrojiet, kur tas ir definēts. Kā minēts iepriekš, taustiņu kartes var būt lokālas un pastāvīgas. Ja taustiņu karte ir pastāvīga un ievietota vimrc failā, tad, vienkārši noņemot tās no faila, atslēgas tiks noņemtas.

Ja kartēšana tiek veikta pašreizējā buferī, tos var noņemt, izmantojot :attīrīt karti vai :atcelt karti! komandas.

  • :attīrīt karti lai notīrītu parastā, vizuālā, atlases vai operatora gaidīšanas režīma taustiņu kartes
  • :atcelt karti! lai notīrītu ievietošanas un komandrindas režīmu taustiņu kartes

Piemēram, lai noņemtu taustiņu, izmantojiet :atņemt karti . Turklāt taustiņu noņemšana var būt atkarīga no režīma. Ja vēlaties noņemt parastā režīma karti, izmantojiet :nunmap . Tālāk ir minētas citas režīmam raksturīgās komandas taustiņu kartes noņemšanai.

:nunmap Lai noņemtu kartes normāli režīmā
:iunmap Lai noņemtu kartes ievietot režīmā
:vunmap Lai noņemtu kartes vizuāli un atlasiet režīmā
:saules karte Lai noņemtu kartes atlasiet režīmā
:xunmap Lai noņemtu kartes vizuāli režīmā
:cunmap Lai noņemtu kartes komandrinda režīmā
:ounmap Lai noņemtu kartes operators gaida režīmā

Lai noņemtu visas pašreizējā bufera kartes, izmantojiet :mapclear komandu.

:mapclear

Iepriekš minētā komanda notīrīs visas parastā, vizuālā, atlases vai operatora gaidīšanas režīma taustiņu kartes.

Lai notīrītu visas ievietošanas un komandrindas režīmu taustiņu kartes, izmantojiet:

:mapclear !

Ņemiet vērā, ka noklusējuma Vim komandas nevar būt skaidras, taču tās var atspējot, izmantojot :attīrīt karti komanda ar . Piemēram, ja vēlaties atspējot dd funkcionalitāti, kas dzēš rindiņu zem kursora, izmantojiet :unmap dd .

:attīrīt karti dd < >

Pašreizējā buferī dd vairs nedarbosies. Izmantojot šo metodi, pašreizējai sesijai var atspējot jebkuru taustiņu karti.

Vim taustiņu kartēšanas apkrāptu lapa

Nākamajā attēlā ir sniegts visu komandu un to īpašo režīmu saraksts atsaucei.

Secinājums

Vim taustiņu kartēšana ir ērts veids, kā automatizēt savus uzdevumus, bieži izmantoto taustiņu saistīšanu, komandas un citas darbības. Tā ir daudzveidīga tēma, un šajā rokasgrāmatā es apskatīju visus galvenos aspektus, kas saistīti ar Vim galveno kartēšanu. No vispārējās sintakses līdz pamata taustiņu kartes izveidei un līdz pat uzlaboto Vimscript funkciju un ārējo komandu kartēšanai. Lai uzzinātu vairāk par Vim taustiņu kartēšanu, izmantojiet :palīdzības taustiņu kartēšana komanda Vim.