Selles põhjalikus juhendis selgitan, kuidas Vimis võtmeid toimingute automatiseerimiseks kaardistada. Alates põhivõtmekaardi loomisest kuni täpsema võtmekaardistamiseni koos nende püsivaks muutmise ja eemaldamise protsessidega.
- Süntaks
- Vimi eriargumendid
- Põhiklahvikaardi loomine
- Klahvikaartide loend
- Klahvikaartide muutmine püsivaks
- Rekursiooni vältimine
- Režiimispetsiifiliste klahvikaartide loomine
- Kuidas kaardistada hiire sündmusi
- Kuidas kaardistada Leader Key'iga Vimis
- Kuidas kaardistada Vimscripti funktsiooni
- Kuidas kaardistada väliseid käske Vimis
- Kuidas eemaldada Vimis klahvikaart
- Vim Key Mapping Cheat Sheet
- Järeldus
Süntaks
Võtme kaardistamiseks Vimis kasutatakse järgmist süntaksit:
Ülaltoodud süntaksis:
|
nmap, imap, vmap, xmap, cmap või omap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
* Ülaltoodud süntaksis on jaotis Vimi eriargumendidVim Special Arguments on sildid, mida kasutatakse klahvikaartidele lisafunktsioonide andmiseks. Need argumendid ilmuvad pärast käsku :map ning enne {rhs} ja {lhs}. Näiteks kaardi puhvripõhiseks muutmiseks kasutage spetsiaalset argumenti järgmisel viisil: :kaart < puhver > < C-a > ggVG
Vimi spetsiaalseid võtmemärke on mainitud järgmisel pildil.
Näiteks kui soovite klahvide vastendamisel kasutada tühikuklahvi, kasutatakse tähistust Põhiklahvikaardi loomine VimisMõistame Vimi võtmete kaardistamist põhinäite abil. Ma tahan vastendada käsku vali kõik read ( ggVG ) kuni ctrl+a võtmed. Klahvide ctrl+a vastendamiseks käivitan Vimis järgmise käsu. :kaart < C-a > ggVG Siin Sarnaselt lülitage reanumbrite vastendamiseks funktsioonid F1 võtme kasutamine: :kaart < F1 > :määratud number !Nüüd, kui vajutate klahvi F1, aktiveeritakse reanumber ja selle uuesti vajutamine keelab selle. Pange tähele, et see meetod kaardistab ainult praeguse puhvri võtmed ja eemaldatakse puhvri sulgemisel. Klahvikaartide loendKõigi tava-, visuaal- ja operaatori ootelrežiimide võtmevastuste loetlemiseks kasutage käsku :map. :kaartVõtmete kaardistamise loetlemiseks sisestada ja käsurida režiimid, kasutage kaarti :map! Käsk. :kaart !Konkreetse režiimi klahvivaste kuvamiseks tippige lihtsalt režiimi algustäht kaardi märksõna ette.
Lisaks kasutage kõigi kaartide, sealhulgas teedega pistikprogrammide kaartide loetlemiseks :verbose kaart käsk. :verbose kaart Konkreetse võtme puhul mainige lihtsalt võtit käsus ( :verbose map Klahvikaartide muutmine püsivaksÜlaltoodud jaotises mainitud klahvikaardid kaardistavad ainult praeguses puhvris olevad võtmed. Vim-võtme vastendamise püsivaks muutmiseks tuleb kaardid paigutada vimrc-faili.
Pange tähele, et kui asetate klahvikaardi vimrc faili, ärge lisage koolonit (:) enne kaart käsk. Pärast klahvikaardi asetamist vimrc faili, salvestage ja sulgege see, kasutades käsku :wq või kasutades klahve Shift+zz. Klahvikaardid, mis on paigutatud vimrc fail on globaalne ja seda saab kasutada kõigis Vimi seanssides. Teatud klahvikaardid saab aga ajutiselt keelata, kui need mõjutavad praeguse seansi tööd, vaadake allpool jaotist Kuidas eemaldada Vimis klahvikaarti. The vimrc on Vimi seadistusfail, mis sisaldab erinevaid käske ja sätteid. See on olemas /usr/share/vim/ kataloog macOS-is ja /etc/vim Linuxis. Oluline on märkida, et vimrc nimetatud kataloogides olevad failid on süsteemispetsiifilised failid. Saate neid faile ka võtme vastendamiseks redigeerida, kuid soovitaksin luua kasutajapõhise faili vimrc fail kodukataloogis. Rekursiooni vältimineEnne edasiliikumist on oluline õppida tundma Vimi võtmete kaardistamise rekursiooni. Selle puudused ja kuidas seda vältida. Seda saab mõista näite abil. :kaart dd 3jddÜlaltoodud näites olen kaardistanud dd klahve, et liikuda 3 rea võrra allapoole ja kustutada kursori all olev rida. Nüüd, kui ma vajutan nuppu dd , proovib see kaarti käivitada 3jdd . Vim tõlgendab dd käsku kaardina ja käivitage kaarti korduvalt, nagu on näidatud järgmisel pildil.
Märge : Rekursioon võib Vimi redaktori külmutada. Selle vabastamiseks vajutage ctrl+c võtmed. Rekursiooni vältimiseks asendage kaart märksõna koos noremapilt , kus ' nore ' tähendab mitterekursiivne . Ma asendan kaart märksõna koos noremapilt rekursiooni parandamiseks ülaltoodud klahvikaardil. :noremap dd 3jddSoovitan kasutada noremapilt selle asemel kaart et vältida kogemata rekursiivse kaardistuse loomist. Režiimispetsiifiliste klahvikaartide loomineVim on muutnud klahvide kaardistamise nii mitmekülgseks, et isegi kindla režiimi klahvikaardi saab üsna lihtsalt luua. Näiteks kui olete loonud sisestusrežiimi jaoks klahvikaardi, kasutades F1 klahvi, siis saate sama kaardistada F1 täiesti uue toimingu tegemiseks sisestage mõni muu režiim. Järgmises näites olen kaardistanud F1 klahv 3 rea kustutamiseks normaalne režiimis ja tõmba 3 rida sisse sisestada režiimis. :nmap < F1 > 3dd:imap < F1 > < C-t > Esimene kaart kustutab kolm rida tavarežiimis, kui vajutate klahvi F1, samas kui teine kaart lisab ühe taande praegusele reale, kui sisestusrežiimis kasutatakse sama klahvi. Nüüd mõistame iga režiimi kaardistamist. Tavarežiimi kaardistamineKaardi rakendamiseks tavarežiimis kasutage ainult nmap märksõna. Näiteks faili kõigi ridade kopeerimiseks kasutades ctrl+c klahve, kasutan järgmist käsku. :nmap < C-c > ggVGyNagu varem mainitud, on parim tava kasutada võtme kaardistamiseks mitterekursiivset meetodit, seetõttu asendan nmap koos nnoremap märksõna. :nnoremap < C-c > ggVGyAsetage see ilma koolonita (:) sisse vimrc faili, et muuta see püsivaks klahvistikuks. ma kasutan noremapilt asemel kaart järgmises näites. Sisesta režiimi kaardistamineSisestamisrežiimi klahvide kaardistamiseks kasutage lihtsalt i selle asemel n . Näiteks lisamisrežiimis ctrl+p ja ctrl+n klahve kasutatakse sõna automaatseks lõpetamiseks vastavalt tagasi- ja edasi-tagasi vastele. Et kaardistada ctrl+p klahve tabeldusklahviga, kasutan järgmist käsku. :inoremap < Tab > < C-p > Veelgi olulisem on see, kui soovite kaardistada operaatori ootelrežiim käsud sisestamise režiim , siis peate sisestama Nüüd, kui ma vajutan nuppu ctrl+x klahve, prindib see välja 3ddi käsk selle täitmise asemel.
Selle parandamiseks sisestan Nüüd käivitab käsk hoidke mind sisestusrežiimis. Paljudel minisülearvutitel puudub see Esc klahvi, mis on praegusest režiimist väljumiseks oluline. Niisiis, kaardistada Esc klahvi sisestusrežiimist väljumiseks, saab kasutada klahvide vastendamist. Järgmises näites kasutan nt klahve, et väljuda tavarežiimist. :inoremap ex < Esc >Kui vajutate kiiresti nuppu nt klahvide vajutamisel väljutakse sisestusrežiimist, sisenedes seega tavarežiimi. Visuaalse režiimi kaardistamineVisuaalne režiim on Vimi redaktoris teksti valimisel väga oluline režiim. Lisaks põhivalikule on visuaalsel režiimil ka teisi erinevaid režiime, nagu visuaalne joon ja visuaalploki režiimid. Visuaalses režiimis tilde (~) kasutatakse tõstuki vahetamiseks. Tilde (~) kasutamiseks peate vajutama kahte klahvi (tõstuklahv+~) . Järgmises näites kaardistan klahvi c sisse visuaalne režiim kursori all oleva sõna valimiseks ja selle tõste muutmiseks. :vnoremap c iw~Nüüd vajutage visuaalsesse režiimi sisenemiseks v ja vajutage klahvi c, et lülitada sõna kursori all, nagu on näidatud järgmises GIF-is.
Käsurea režiimi kaardistaminePaljud Vimi olulised käsud töötavad ainult käsurearežiimis. Näiteks faili salvestamiseks :Sisse käsku kasutatakse sarnaselt salvestamiseks ja väljumiseks :wq kasutatakse käsku. Kõik vahekaardid ja poolitustoimingud tehakse ka käsurearežiimis. Näiteks uue vahekaardi loomiseks : alluv kasutatakse käsku. Vahekaardi kiireks loomiseks ctrl+t võtmetest piisab. :cnoremap < C-t > teema < CR >Nüüd vajutage käsurearežiimi sisenemiseks koolonit (:) ja seejärel ctrl+t uue vahekaardi avamiseks; see on palju kiirem kui kogu teksti tippimine teema käsk ja Tagasi võti.
Vimi kohandatud käskude loomine Nüüd sisenege käsurežiimi ja käivitage : Mycmd käsk. Operaator ootel režiimi kaardistamineOperaator ootel režiim on režiim, milles Vim ootab liikumiskäsku pärast operaatoriklahvi vajutamist. Levinud operaatorid on y, d ja c. Näiteks praeguse rea ja 3 järgneva rea kustutamiseks kasutage operaatorit d with 3j liikumine (d3j). Soovitud toimingu tegemiseks ei saa neid klahve korraga vajutada. Režiimi kasutatakse tavaliselt liikumiste kaardistamiseks. Kaardistagem liikumine, mis valib praeguse rea ja sellele järgnevad 3 rida. :onoremap < F2 > 3jPraeguse rea ja sellele järgneva kolme rea tõmbamiseks kasutage nuppu theF2 võtmed, samal viisil, d saab rakendada ka operaatorit. Veel üks oluline asi, mida meeles pidada, on see, kui lisate ülalmainitud kaardistatud liikumisele loenduse, oletame 2 Kuidas kaardistada hiire sündmusiKuigi Vim on täielikult kohandatav klaviatuurikeskne tekstiredaktor, muudab hiire funktsioonide kättesaadavus selle veelgi paremaks. Lisaks tavalistele klaviatuuriklahvidele saab Vimis kaardistada ka kõiki hiire sündmusi. Näiteks kui soovite vastendada parempoolset topeltklõpsu ja vasakpoolset topeltklõpsu, et hüpata märgid vastavalt edasi ja tagasi, kasutage järgmist vastendamist. :noremap < 2 - Parem hiir > ] `:noremap < 2 - Vasak hiir > [ ` Teised hiiresündmused, mida saab kaardistada, on toodud järgmises tabelis.
Kuidas kaardistada Leader Key'iga VimisVimide kaardistamine on puudulik ilma juhtvõtmeta. Juhtklahv on vaikeklahv, mida saab kasutada võtmete vastendamiseks, isegi kui need on kaardistatud mõne muu ülesande täitmiseks. Näiteks kui olete kaardistanud d klahvi kõigi ridade kustutamiseks, siis saame juhtklahvi abil sama klahvi kaardistada, et kustutada ainult 5 rida. Neile, kes pole kursis Vimi juhtvõtmega. See on võti, mille eesliide on teine võti või klahvikomplekt käskude või toimingute vastendamiseks. Vimi vaikimisi juhtvõti on kaldkriips (\), kuid seda saab kohandada. Näiteks dd käsku kasutatakse kursori all oleva rea kustutamiseks. Kui soovite kaardistada dd käsk kustutada kõik failiread, siis saate kasutada juhtklahvi. :noremap < Juht > dd ggVGdNüüd, kui vajutate nuppu \dd klahvi, kustutatakse failis kõik read. Vimi juhtvõtme saate omistada Windowsi juhtklahviks või MacOS-i käsuklahviks. Kuidas kaardistada Vimscripti funktsiooniVimi redaktor ei piirdu käskude või toimingutega. Vimi ümber on terve programmeerimiskeel, et luua kohandatud funktsioone nimega Vimscript. Saate hõlpsasti luua skripti või funktsiooni ja vastendada selle võtmega. Näiteks loome funktsiooni, mis võimaldab selliseid sätteid nagu rea number, hiire funktsionaalsus ja tekstilaius. funktsiooni Minu seaded ( )seatud number seatud hiir =a seatud tekstilaius = 80 lõppfunktsioon Asetage see funktsioon vimrc faili. Kaardistame selle funktsiooni liidri ja s-klahvidega. ma kasutan :noremap < Juht > s: helistage MySettings ( ) < CR >Nüüd, kui vajutate nuppu \s klahvidele, kutsutakse funktsioon välja ja kõik funktsiooni sees olevad funktsioonid käivituvad. Märge : funktsiooni nime esimene täht tuleb Vimis kohandatud funktsiooni loomisel alati suure algustähega kirjutada. Kuidas kaardistada väliseid käske VimisVäliseid käske saab kaardistada ka Vimis. Välised käsud viitavad Linuxi või Unixi käskudele. Näiteks kui soovite kaardistada välist sorteerida käsk sortida kõik praeguses puhvris olevad read F1 klahvi, kasutage järgmist käsku. :noremap < F1 > : %! sorteerida < CR >Samamoodi, kui kirjutate skriptifaili ja muudate selle käivitatavaks ilma Vimi seansist lahkumata, saate kasutada chmod sisemiselt käsutada. Näiteks praeguse faili käivitatavaks muutmiseks võite käivitada käsu :!chmod +x % aastal Vim. Kui teete seda ülesannet sageli, kaardistage sellele lihtsalt võti. :noremap < F1 > : ! chmod +x %Vimis saab mis tahes välist käsku kasutada koos hüüumärgiga (!). Kuidas eemaldada Vimis klahvikaartKlahvikaartide eemaldamiseks Vimis tehke esmalt kindlaks, kus see on määratletud. Nagu varem mainitud, võivad klahvikaardid olla puhverkohalised ja püsivad. Kui klahvikaart on püsiv ja paigutatud vimrc-faili, eemaldatakse klahvide vaste lihtsalt nende failist eemaldamisel. Kui kaardistamine on tehtud praeguses puhvris, saab need eemaldada, kasutades :tühista kaart või :tühista kaart! käske.
Näiteks selleks, et eemaldada
Kõigi praeguses puhvris olevate kaartide eemaldamiseks kasutage nuppu :mapclear käsk. :mapclearÜlaltoodud käsk kustutab kõik tava-, visuaal-, valiku- või operaatori ootelrežiimi klahvikaardid. Kõigi sisestus- ja käsurearežiimide klahvikaartide kustutamiseks kasutage järgmist. :mapclear ! Pange tähele, et Vimi vaikekäsud ei saa olla selged, kuid neid saab keelata kasutades :tühista kaart käsuga koos Dd ei tööta enam praeguses puhvris. Seda meetodit kasutades saab praeguse seansi jaoks keelata mis tahes klahvikaardi. Vim Key Mapping Cheat SheetJärgmisel pildil on loendi kõigist käskudest ja nende konkreetsetest režiimidest.
JäreldusVim-klahvide kaardistamine on mugav viis oma ülesannete, sageli kasutatavate klahvide sidumise, käskude ja muude toimingute automatiseerimiseks. See on mitmekesine teema ja selles juhendis käsitlesin kõiki peamisi aspekte, mis on seotud Vimi võtmekaardistamisega. Alates üldisest süntaksist kuni põhiklahvide kaardi loomiseni ja kuni täpsemate Vimscripti funktsioonide ja väliste käskude kaardistamiseni. Vimi klahvide kaardistamise kohta lisateabe saamiseks kasutage :help klahvide kaardistamine käsk Vimis. |