Š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
- Vim īpašie argumenti
- Pamata taustiņu kartes izveide
- Taustiņu karšu uzskaitīšana
- Taustiņu karšu padarīšana par pastāvīgu
- Izvairīšanās no rekursijas
- Režīmiem specifisku taustiņu karšu izveide
- Kā kartēt peles notikumus
- Kā izveidot karti ar Leader Key programmā Vim
- Kā kartēt Vimscript funkciju
- Kā kartēt ārējās komandas programmā Vim
- Kā noņemt taustiņu karti programmā Vim
- Vim taustiņu kartēšanas apkrāptu lapa
- Secinājums
Sintakse
Lai kartētu atslēgu programmā Vim, tiek izmantota šāda sintakse:
Iepriekš minētajā sintaksē:
|
nmap, imap, vmap, xmap, cmap vai omap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
* Iepriekš minētajā sintaksē sadaļa Vim īpašie argumentiVim ī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
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ā VimSapratī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, 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īšanaLai uzskaitītu visus parastā, vizuālā un operatora gaidīšanas režīma taustiņu kartējumus, izmantojiet komandu :map. :karteLai 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.
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īguIepriekšē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 rekursijasPirms 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 3jddIepriekš 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 3jddIeteikšu lietot noremap tā vietā karte lai izvairītos no nejaušas rekursīvas kartēšanas izveides. Režīmiem specifisku taustiņu karšu izveideVim 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ēšanaLai 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 > ggVGyKā 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 > ggVGyNovietojiet 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ēšanuLai 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 Tagad, kad es nospiežu ctrl+x taustiņi, tas izdrukās 3ddi komandu, nevis to izpildīt.
Lai to labotu, es ievietošu 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ēšanaVizuā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ēšanaDaudzas 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 Tagad ievadiet komandu režīmu un izpildiet : Mycmd komandu. Operatora gaidīšanas režīma kartēšanaOperatora 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 > 3jTagad, 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 Kā kartēt peles notikumusLai 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ā.
Kā izveidot karti ar Leader Key programmā VimVim 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 ggVGdTagad 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 funkcijuVim 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ā VimLai 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.
Piemēram, lai noņemtu
Lai noņemtu visas pašreizējā bufera kartes, izmantojiet :mapclear komandu. :mapclearIepriekš 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 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 lapaNākamajā attēlā ir sniegts visu komandu un to īpašo režīmu saraksts atsaucei.
SecinājumsVim 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. |