V tem obsežnem vodniku bom razložil, kako preslikati ključe v Vimu za avtomatizacijo operacij. Od ustvarjanja osnovnega preslikave ključev do naprednega preslikave ključev, skupaj s postopki, kako jih narediti trajnimi in jih odstraniti.
- Sintaksa
- Posebni argumenti Vim
- Ustvarjanje osnovne preslikave tipk
- Seznam preslikav tipk
- Naredite trajne preslikave tipk
- Izogibanje rekurziji
- Ustvarjanje preslikav tipk, specifičnih za način
- Kako preslikati dogodke miške
- Kako preslikati s ključem Leader v Vimu
- Kako preslikati funkcijo Vimscript
- Kako preslikati zunanje ukaze v Vimu
- Kako odstraniti preslikavo tipk v Vimu
- Goljufija za preslikavo ključev Vim
- Zaključek
Sintaksa
Za preslikavo ključa v Vimu je uporabljena naslednja sintaksa:
V zgornji sintaksi:
|
nmap, imap, vmap, xmap, cmap ali omap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
*V zgornji sintaksi je razdelek Posebni argumenti VimPosebni argumenti Vim so oznake, ki se uporabljajo za dodajanje dodatne funkcionalnosti preslikavam tipk. Ti argumenti se pojavijo za ukazom :map in pred {rhs} in {lhs}. Na primer, če želite medpomnilnik zemljevida narediti specifičnega, uporabite poseben argument na naslednji način: :zemljevid < medpomnilnik > < C-a > ggVG
Posebni ključni zapisi Vim so omenjeni na naslednji sliki.
Na primer, če želite uporabiti tipko za presledek pri preslikavi tipk, bo uporabljen zapis Ustvarjanje osnovne preslikave tipk v VimuRazumejmo preslikavo ključev Vim z osnovnim primerom. Želim preslikati ukaz za izbiro vseh vrstic ( ggVG ) za ctrl+a ključi. Za preslikavo tipk ctrl+a bom v Vimu zagnal naslednji ukaz. :zemljevid < C-a > ggVG tukaj, Podobno, če želite preslikati številko vrstice, preklopite funkcijo z F1 uporaba ključa: :zemljevid < F1 > : nastavite številko !Zdaj, ko pritisnete tipko F1, bo številka vrstice omogočena, s ponovnim pritiskom pa jo onemogočite. Upoštevajte, da bo ta metoda samo preslikala ključe v trenutnem medpomnilniku in bo odstranjena, ko zaprete medpomnilnik. Seznam preslikav tipkZa seznam vseh preslikav tipk običajnega, vizualnega in čakajočega načina operaterja uporabite ukaz :map. :zemljevidZa seznam ključnih preslikav vstavi in ukazna vrstica načine, uporabite :map! Ukaz. :zemljevid !Če želite prikazati preslikavo tipk določenega načina, samo vnesite začetno črko načina pred ključno besedo zemljevida.
Poleg tega za seznam vseh zemljevidov, vključno z zemljevidi vtičnika s potmi, uporabite :podroben zemljevid ukaz. :podroben zemljevid Za določen ključ preprosto omenite ključ v ukazu ( :verbose map Naredite trajne preslikave tipkPreslikave tipk, omenjene v zgornjem razdelku, bodo preslikale samo tipke v trenutnem medpomnilniku. Da bi bile preslikave ključev Vim trajne, je treba preslikave postaviti v datoteko vimrc.
Upoštevajte, da med postavljanjem preslikave tipk v vimrc ne dodajte dvopičja (:) pred zemljevid ukaz. Po postavitvi preslikave tipk v vimrc datoteko, shranite in zaprite z ukazom :wq ali s tipkama shift+zz. Razporeditve tipk, postavljene v vimrc bo globalna in jo bo mogoče uporabiti v vseh sejah Vim. Vendar pa je mogoče nekatere preslikave tipk začasno onemogočiti, če vplivajo na delo v trenutni seji, glejte spodnji razdelek Kako odstraniti preslikavo tipk v Vimu. The vimrc je nastavitvena datoteka programa Vim, ki vsebuje različne ukaze in nastavitve. Prisoten je v /usr/share/vim/ imenik v sistemu macOS in /etc/vim v sistemu Linux. Pomembno je omeniti, da je vimrc datoteke v omenjenih imenikih so sistemske datoteke. Te datoteke lahko urejate tudi za preslikavo ključev, vendar priporočam, da ustvarite uporabniško specifično vimrc datoteko v domačem imeniku. Izogibanje rekurzijiPreden nadaljujemo, je pomembno, da se naučimo o rekurziji v preslikavi ključev Vim. Njegove slabosti in kako ga preprečiti. To je mogoče razumeti z uporabo primera. :zemljevid dd 3jddV zgornjem primeru sem preslikal dd tipki za pomik za 3 vrstice navzdol in brisanje vrstice pod kazalcem. Zdaj, ko pritisnem dd , bo poskusil izvesti zemljevid 3jdd . Vim bo tolmačil dd kot zemljevid in večkrat izvršite zemljevid, kot je prikazano na naslednji sliki.
Opomba : Rekurzija lahko zamrzne urejevalnik Vim. Če ga želite odmrzniti, pritisnite ctrl+c ključi. Da se izognete rekurziji, zamenjajte zemljevid ključna beseda z noremap , kje ' nore ' pomeni nerekurzivno . Zamenjal bom zemljevid ključna beseda z noremap da popravite rekurzijo v zgornji razporeditvi tipk. :noremap dd 3jddPriporočam uporabo noremap namesto zemljevid da preprečite nenamerno ustvarjanje rekurzivnega preslikave. Ustvarjanje preslikav tipk, specifičnih za načinVim je preslikavo tipk naredil tako vsestransko, da je mogoče preprosto ustvariti celo preslikavo tipk določenega načina. Na primer, če ste naredili razpored tipk za način vstavljanja z uporabo F1 ključ, potem lahko preslikate isto F1 tipko v drugem načinu za povsem novo operacijo. V naslednjem primeru sem preslikal F1 tipka za brisanje 3 vrstic v normalno načinu in potegnite 3 vrstice v vstavi način. :nmap < F1 > 3dd:imap < F1 > < C-t > Prvi zemljevid izbriše tri vrstice v običajnem načinu, ko pritisnete tipko F1, medtem ko drugi zemljevid doda en zamik v trenutni vrstici, ko je v načinu vstavljanja z isto tipko. Zdaj pa poglejmo preslikavo v vsakem načinu. Preslikava običajnega načinaČe želite uporabiti zemljevid v običajnem načinu, uporabite samo nmap ključna beseda. Na primer, če želite kopirati vse vrstice v datoteki z uporabo ctrl+c tipke, bom uporabil naslednji ukaz. :nmap < C-c > ggVGyKot smo že omenili, je najboljša praksa uporaba nerekurzivne metode za preslikavo ključa, zato bom zamenjal nmap z nnoremap ključna beseda. :nnoremap < C-c > ggVGyPostavite ga brez dvopičja (:) v vimrc datoteko, da postane trajna preslikava tipk. bom uporabil noremap namesto zemljevid v naslednjem primeru. Vstavi preslikavo načinaZa preslikavo ključev za način vstavljanja preprosto uporabite jaz namesto n . Na primer, v načinu vstavljanja ctrl+p in ctrl+n tipke se uporabljajo za samodejno dokončanje besede na podlagi ujemanja nazaj oziroma naprej. Za preslikavo ctrl+p tipke s tipko tab, bom uporabil naslednji ukaz. :inoremap < Tab > < C-p > Še pomembneje, če želite zemljevid način čakanja operaterja ukazi v način vstavljanja , potem morate vstaviti Zdaj, ko pritisnem ctrl+x ključe, bo natisnil 3ddi namesto da bi ga izvršili.
Da ga popravim, bom vstavil Zdaj bo ukaz izvedel obdrži me v načinu vstavljanja. Veliko mini prenosnih računalnikov nima Esc ključ, ki je pomemben za izhod iz trenutnega načina. Torej, za preslikavo Esc tipko za izhod iz načina vstavljanja, lahko uporabite preslikavo tipk. V naslednjem primeru uporabljam npr tipke za izhod v običajni način. :inoremap ex < Esc >Ko na hitro pritisnete npr tipke bo zapustil način vstavljanja in tako vstopil v običajni način. Preslikava v vizualnem načinuVizualni način je zelo pomemben način za izbiranje besedila v urejevalniku Vim. Poleg osnovne izbire ima vizualni način druge različne načine, kot sta vizualna črta in vizualni blok. V vizualnem načinu, tilda (~) se uporablja za preklop ohišja. Za uporabo tilde (~) morate pritisniti obe tipki (shift+~) . V naslednjem primeru preslikavam tipko c vizualni način da izberete besedo pod kazalcem in spremenite njeno velikost. :vnoremap c iw~Zdaj pritisnite v, da vstopite v vizualni način, in pritisnite tipko c, da preklopite besedo pod kazalcem, kot je prikazano v naslednjem GIF-u.
Preslikava v načinu ukazne vrsticeŠtevilni bistveni ukazi Vim delujejo samo v načinu ukazne vrstice. Na primer, da shranite datoteko :Noter ukaz se na podoben način uporablja za shranjevanje in izhod :wq ukaz se uporablja. Vsi zavihki in operacije delitve se izvajajo tudi v načinu ukazne vrstice. Če želite na primer ustvariti nov zavihek, : podrejen ukaz se uporablja. No, če želite hitro ustvariti zavihek, ctrl+t ključi so dovolj. :cnoremap < C-t > predmet < CR >Zdaj pritisnite dvopičje (:), da vstopite v način ukazne vrstice, in nato ctrl+t da odprete nov zavihek; je veliko hitreje kot vtipkati celotno predmet ukaz in Vrnitev ključ.
Ustvarjanje ukazov po meri Vim Zdaj vstopite v ukazni način in izvedite :Mycmd ukaz. Preslikava načina čakanja operaterjaNačin čakanja operaterja je način, v katerem Vim čaka na ukaz gibanja po pritisku operaterske tipke. Pogosti operatorji so y, d in c. Če želite na primer izbrisati trenutno vrstico in naslednje 3 vrstice, boste uporabili operator d z 3j gibanje (d3j). Teh tipk ne morete pritisniti hkrati, da dosežete želeno operacijo. Način se običajno uporablja za preslikavo gibanja. Preslikajmo gibanje, ki bo izbralo trenutno vrstico in 3 vrstice, ki ji sledijo. :onoremap < F2 > 3jZdaj, da potegnete trenutno vrstico in 3 vrstice, ki ji sledijo, uporabite theF2 ključi, na enak način, d uporabi se lahko tudi operater. Druga pomembna stvar, ki jo morate imeti v mislih, je, če dodate štetje zgoraj omenjenemu preslikanemu gibanju, recimo 2 Kako preslikati dogodke miškeČeprav je Vim popolnoma prilagodljiv urejevalnik besedil, osredotočen na tipkovnico, je zaradi razpoložljivosti funkcionalnosti miške še boljši. Poleg običajnih tipk na tipkovnici je mogoče v Vimu preslikati tudi vse dogodke miške. Na primer, če želite preslikati desni dvojni klik in levi dvojni klik za preskok oznak naprej oziroma nazaj, uporabite naslednjo preslikavo. :noremap < 2 -Desna miška > ] `:noremap < 2 -Leva miška > [ ` Drugi dogodki miške, ki jih je mogoče preslikati, so podani v naslednji tabeli.
Kako preslikati s ključem Leader v VimuPreslikava Vim je nepopolna brez vodilnega ključa. Vodilni ključ je privzeti ključ, ki ga je mogoče uporabiti za preslikavo ključev, tudi če so preslikani za izvajanje nekaterih drugih nalog. Na primer, če ste preslikali d tipko za brisanje vseh vrstic, potem lahko preslikamo isto tipko za brisanje samo 5 vrstic z uporabo vodilne tipke. Za tiste, ki tega ne poznate, s ključem Vim leader. To je ključ, ki ima predpono drug ključ ali niz ključev za preslikavo ukazov ali operacij. Vimov privzeti glavni ključ je poševnica nazaj (\), vendar jo je mogoče prilagoditi. Na primer, dd ukaz se uporablja za brisanje vrstice pod kazalcem. Če želite preslikati dd ukaz za brisanje vseh vrstic v datotekah, potem lahko uporabite vodilno tipko. :noremap < Vodja > dd ggVGdZdaj, ko pritisnete \dd tipko, bodo vse vrstice v datoteki izbrisane. Vodilno tipko Vim lahko dodelite kot nadzorno tipko v sistemu Windows ali kot ukazno tipko v sistemu macOS. Kako preslikati funkcijo VimscriptUrejevalnik Vim ni omejen na ukaze ali operacije. Okoli Vima obstaja celoten programski jezik za ustvarjanje funkcionalnosti po meri, imenovan Vimscript. Z lahkoto lahko ustvarite skript ali funkcijo in jo preslikate v ključ. Na primer, ustvarimo funkcijo, ki bo omogočala nastavitve, kot so številka vrstice, funkcionalnost miške in širina besedila. funkcijo Moje nastavitve ( )set število set miško =a set textwidth = 80 končna funkcija Postavite to funkcijo v datoteko vimrc. Preslikajmo to funkcijo z vodilom in tipkama s. bom uporabil :noremap < Vodja > s :pokličite Moje nastavitve ( ) < CR >Zdaj, ko pritisnete \s tipke, bo funkcija poklicana in vse funkcije znotraj funkcije se bodo izvedle. Opomba : med ustvarjanjem funkcije po meri v Vimu mora biti prva črka imena funkcije vedno velika. Kako preslikati zunanje ukaze v VimuZunanje ukaze je mogoče preslikati tudi v Vimu. Zunanji ukazi se nanašajo na ukaze Linux ali Unix. Na primer, če želite preslikati zunanje vrsta ukaz za razvrščanje vseh vrstic v trenutnem medpomnilniku v F1 uporabite naslednji ukaz. :noremap < F1 > : %! vrsta < CR >Na enak način, če pišete skriptno datoteko in jo naredite izvršljivo, ne da bi zapustili sejo Vim, lahko uporabite chmod ukaz interno. Če želite na primer trenutno datoteko narediti izvedljivo, lahko izvedete ukaz :!chmod +x % v Vimu. Če pogosto opravljate to nalogo, ji preprosto preslikajte ključ. :noremap < F1 > : ! chmod +x %V Vimu je vsak zunanji ukaz mogoče uporabiti s klicajem (!). Kako odstraniti preslikavo tipk v VimuČe želite odstraniti preslikave tipk v Vimu, najprej ugotovite, kje so definirane. Kot smo že omenili, so preslikave tipk lahko lokalne in stalne. Če je preslikava tipk trajna in postavljena v datoteko vimrc, potem preprosto odstranitev iz datoteke razveljavi preslikavo ključev. Če se preslikava izvaja v trenutnem medpomnilniku, jih je mogoče odstraniti z uporabo :unmap oz :unmap! ukazi.
Na primer, da odstranite
Če želite odstraniti vse zemljevide v trenutnem medpomnilniku, uporabite :mapclear ukaz. :mapclearZgornji ukaz bo počistil vse preslikave tipk običajnega, vizualnega, izbirnega ali čakajočega načina operaterja. Če želite počistiti vse preslikave tipk načinov vstavljanja in ukazne vrstice, uporabite: :mapclear ! Upoštevajte, da privzeti ukazi Vim ne morejo biti jasni, vendar jih je mogoče onemogočiti z :unmap ukaz z dd ne bo več deloval v trenutnem medpomnilniku. S to metodo je mogoče onemogočiti katero koli razporeditev tipk za trenutno sejo. Goljufija za preslikavo ključev VimNaslednja slika ponuja seznam vseh ukazov in njihovih posebnih načinov za referenco.
ZaključekPreslikava tipk Vim je priročen način za avtomatizacijo vaših opravil, pogosto uporabljenih vezav tipk, ukazov in drugih operacij. To je raznolika tema in v tem priročniku sem zajel vse glavne vidike, ki so povezani s preslikavo ključev v Vimu. Od splošne sintakse do ustvarjanja osnovne razporeditve tipk in vse do preslikave naprednih funkcij Vimscript in zunanjih ukazov. Če želite izvedeti več o preslikavi ključev Vim, uporabite :help preslikava tipk ukaz v Vimu. |