Tässä kattavassa oppaassa selitän, kuinka avaimet kartoitetaan Vimissä toimintojen automatisoimiseksi. Perusavainkartan luomisesta kehittyneisiin näppäinkartoituksiin sekä prosessien tekemiseen niistä pysyviksi ja poistamiseksi.
- Syntaksi
- Vim Special Arguments
- Perusnäppäinkartan luominen
- Näppäinkarttojen luettelointi
- Näppäinkarttojen tekeminen pysyviksi
- Rekursion välttäminen
- Tilakohtaisten näppäinkarttojen luominen
- Kuinka kartoittaa hiiren tapahtumia
- Kartan tekeminen Leader Key -avaimella Vimissä
- Vimscript-funktion kartoittaminen
- Kuinka kartoittaa ulkoiset komennot Vimissä
- Näppäinkartan poistaminen Vimissä
- Vim Key Mapping -huijauslehti
- Johtopäätös
Syntaksi
Avaimen kartoittamiseen Vimissä käytetään seuraavaa syntaksia:
Yllä olevassa syntaksissa:
|
nmap, imap, vmap, xmap, cmap tai omap |
|
|
|
Vasemmalla puolella on kartoitettava näppäin tai näppäinsarja |
|
Oikea puoli sisältää joukon näppäimiä tai komentoja, jotka suoritetaan vasemmanpuoleisilla näppäimillä |
Olennaista,
*Yllä olevassa syntaksissa
Vimin erityisargumentit
Vim Special Arguments ovat tunnisteita, joita käytetään antamaan lisätoimintoja näppäinkartoille. Nämä argumentit näkyvät :map-komennon jälkeen ja ennen komentoja {rhs} ja {lhs}.
Jos haluat esimerkiksi tehdä karttapuskurikohtaisen, käytä erikoisargumenttia seuraavalla tavalla:
:kartta < puskuri > < C-a > ggVG |
Kaiuttujen viestien estäminen näppäinkartalta |
|
Karttapuskurin tekeminen (ainutlaatuinen nykyiselle puskurille) |
Osoittaa, että kartta on osa komentosarjaa tai laajennusta | |
|
*Sitä käytetään määrittämään erikoisnäppäimet kartoitukseen <>-merkinnällä (toimintonäppäimet, ohjaus-, vaihto- ja muut ei-aakkosmerkit) |
|
Se osoittaa, että kartoituksen vasen puoli on lauseke ja se on arvioitava oikean puolen saamiseksi |
|
Tehdä kartasta ainutlaatuinen paikallisten ja globaalien karttojen joukossa |
|
Ohita kartan seuraavan komentomerkin odottaminen |
Vim-erikoisnäppäinmerkinnät mainitaan seuraavassa kuvassa.
Jos esimerkiksi haluat käyttää välilyöntiä näppäinkartoituksessa, käytetään
Perusnäppäinkartan luominen Vimissä
Ymmärretään Vim-näppäinkartoitus perusesimerkillä. Haluan yhdistää valitse kaikki rivit -komennon ( ggVG ) kohtaan ctrl+a avaimet. Yhdistääkseni ctrl+a-näppäimet suoritan seuraavan komennon Vimissä.
:kartta < C-a > ggVG Tässä,
Vastaavasti, jos haluat yhdistää rivinumeron, vaihda toimintoa F1 avaimen käyttö:
:kartta < F1 > : aseta numero !Nyt, kun painat F1-näppäintä, rivinumero otetaan käyttöön ja sen uudelleen painaminen poistaa sen käytöstä.
Huomaa, että tämä menetelmä kartoittaa vain nykyisen puskurin avaimet ja se poistetaan, kun puskuri suljetaan.
Näppäinkarttojen luettelointi
Jos haluat luetella kaikki normaalin, visuaalisen ja operaattorin odottavan tilan näppäinkartoitukset, käytä :map-komentoa.
:karttaLuettelo näppäinkartoituksesta lisää ja komentorivi tilat, käytä :map! Komento.
:kartta !Jos haluat luetella tietyn tilan näppäinkartoituksen, kirjoita tilan alkukirjain ennen karttaavainsanaa.
:nmap | Normaalitilan karttojen näyttäminen |
:imap | Lisäystilan karttojen näyttäminen |
:vmap | Voit näyttää visuaalisen kartan ja valita tilan |
:smap | Valitun tilan karttojen näyttäminen |
:xmap | Visuaalisen tilan karttojen näyttäminen |
:cmap | Komentorivitilan karttojen näyttäminen |
:omap | Käyttäjän odottavan tilan karttojen näyttäminen |
Lisäksi luetellaksesi kaikki kartat, mukaan lukien liitännäiskartat poluilla, käytä :verbose kartta komento.
:verbose kartta Tietyn avaimen kohdalla mainitse avain komennossa ( :verbose kartta
Näppäinkarttojen tekeminen pysyviksi
Yllä olevassa osiossa mainitut näppäinkartat yhdistävät vain nykyisen puskurin avaimet. Jotta Vim-näppäinkartoitukset olisivat pysyviä, kartat on sijoitettava vimrc-tiedostoon.
Huomaa, että kun asetat näppäinkartan vimrc tiedostoa, älä lisää kaksoispistettä (:) ennen kartta komento.
Kun olet asettanut näppäinkartan vimrc tiedosto, tallenna ja sulje se komennolla :wq tai Shift+zz-näppäimillä. Näppäinkartat sijoitettu vimrc tiedosto on globaali ja sitä voidaan käyttää kaikissa Vim-istunnoissa. Tietyt näppäinkartat voidaan kuitenkin tilapäisesti poistaa käytöstä, jos ne vaikuttavat nykyisen istunnon työhön. Katso alla oleva kohta Näppäinkartan poistaminen Vimissä.
The vimrc on Vimin asetustiedosto, joka sisältää erilaisia komentoja ja asetuksia. Se on läsnä /usr/share/vim/ hakemisto macOS:ssä ja /etc/vim Linuxissa. On tärkeää huomata, että vimrc mainituissa hakemistoissa olevat tiedostot ovat järjestelmäkohtaisia tiedostoja. Voit muokata näitä tiedostoja myös avainkartoitusta varten, mutta suosittelen luomaan käyttäjäkohtaisen vimrc tiedosto kotihakemistossa.
Rekursion välttäminen
Ennen kuin siirryt eteenpäin, on tärkeää tutustua Vim-näppäinkartoituksen rekursioon. Sen haitat ja kuinka estää se. Se voidaan ymmärtää esimerkin avulla.
:kartta dd 3jddYllä olevassa esimerkissä olen kartoittanut dd näppäimiä siirtyäksesi 3 riviä alaspäin ja poistaaksesi rivin kohdistimen alla. Nyt kun painan dd , se yrittää suorittaa kartan 3jdd . Vim tulkitsee dd komento karttana ja suorita kartta toistuvasti, kuten seuraavassa kuvassa näkyy.
Huomautus : Rekursio voi pysäyttää Vim-editorin. Voit vapauttaa sen painamalla ctrl+c avaimet.
Rekursion välttämiseksi vaihda kartta avainsana kanssa noremap , missä ' nore ' tarkoittaa ei-rekursiivinen . vaihdan kartta avainsana kanssa noremap korjataksesi rekursion yllä olevassa näppäinkartassa.
:noremap dd 3jddSuosittelen käyttöä noremap sijasta kartta välttääksesi rekursiivisen kartoituksen luomisen vahingossa.
Tilakohtaisten näppäinkarttojen luominen
Vim on tehnyt näppäinkartoituksen niin monipuoliseksi, että jopa tietystä tilasta voidaan luoda näppäinkartta melko helposti. Jos olet esimerkiksi tehnyt näppäinkartan lisäystilaa varten käyttämällä F1 näppäintä, voit kartoittaa saman F1 näppäile toisessa tilassa kokonaan uusi toiminto.
Seuraavassa esimerkissä olen kartoittanut F1 -näppäintä poistaaksesi 3 riviä normaali -tilassa ja vedä 3 riviä sisään lisää -tilassa.
:nmap < F1 > 3dd:imap < F1 > < C-t >
Ensimmäinen kartta poistaa kolme riviä normaalitilassa, kun painetaan F1-näppäintä, kun taas toinen kartta lisää yhden sisennyksen nykyiselle riville lisäystilassa samalla näppäimellä. Ymmärretään nyt kartoitus kussakin tilassa.
Normaalitilan kartoitus
Käytä karttaa vain normaalitilassa nmap avainsana. Esimerkiksi kopioidaksesi kaikki tiedoston rivit käyttämällä ctrl+c näppäimiä, käytän seuraavaa komentoa.
:nmap < C-c > ggVGyKuten aiemmin mainittiin, on paras käytäntö käyttää ei-rekursiivista menetelmää avaimen kartoittamiseen, joten korvaan nmap kanssa nnoremap avainsana.
:nnoremap < C-c > ggVGyAseta se ilman kaksoispistettä (:) -kohtaan vimrc tiedostoa, jotta siitä tulee pysyvä näppäinkartta.
Aion käyttää noremap sijasta kartta seuraavassa esimerkissä.
Lisää tilakartoitus
Voit yhdistää näppäimet lisäystilaan käyttämällä i sijasta n . Esimerkiksi lisäystilassa ctrl+p ja ctrl+n näppäimiä käytetään sanan automaattiseen täydentämiseen perustuen vastaavasti taaksepäin ja eteenpäin. Kartoittaaksesi ctrl+p näppäimet sarkainnäppäimellä, käytän seuraavaa komentoa.
:inoremap < Tab > < C-p > Vielä tärkeämpää on, jos haluat kartoittaa operaattori odotustilassa komennot lisäystila , sinun on asetettava
Nyt kun painan ctrl+x avaimet, se tulostaa 3ddi komento sen suorittamisen sijaan.
Korjatakseni sen lisään
Nyt komento suorittaa Pidä minut lisäystilassa.
Monista minikannettavista puuttuu poistu näppäintä, joka on tärkeä nykyisestä tilasta poistumiseen. Joten kartoittamaan poistu -näppäintä poistuaksesi lisäystilasta, näppäinkartoitusta voidaan käyttää. Seuraavassa esimerkissä käytän esim näppäimiä poistuaksesi normaalitilaan.
:inoremap ex < poistu >Kun painat nopeasti esim näppäimillä lisäystila poistuu, jolloin siirrytään normaalitilaan.
Visuaalisen tilan kartoitus
Visuaalinen tila on erittäin tärkeä tila tekstin valinnassa Vim-editorissa. Perusvalinnan lisäksi visuaalisessa tilassa on muitakin erilaisia tiloja, kuten visuaalinen viiva ja visuaalinen lohkotila.
Visuaalisessa tilassa tilde (~) käytetään tapauksen vaihtamiseen. Käyttääksesi aaltoviivaa (~), sinun on painettava kahta näppäintä (vaihto+~) . Seuraavassa esimerkissä yhdistän c-näppäimen visuaalinen tila valitaksesi sanan kohdistimen alta ja vaihtaaksesi sen kirjainkokoa.
:vnoremap c iw~Siirry nyt visuaaliseen tilaan painamalla v ja paina c-näppäintä vaihtaaksesi sanaa kohdistimen alla seuraavan GIF-kuvan mukaisesti.
Komentorivitilan kartoitus
Monet Vimin olennaiset komennot toimivat vain komentorivitilassa. Esimerkiksi tiedoston tallentamiseen :Sisään komentoa käytetään samalla tavalla tallentamiseen ja lopettamiseen :wq komentoa käytetään. Kaikki välilehdet ja jakamistoiminnot tehdään myös komentorivitilassa. Jos esimerkiksi haluat luoda uuden välilehden, : alainen komentoa käytetään. Jos haluat luoda välilehden nopeasti, ctrl+t avaimet riittää.
:cnoremap < C-t > aihe < CR >Paina nyt kaksoispistettä (:) siirtyäksesi komentorivitilaan ja sitten ctrl+t avata uusi välilehti; se on paljon nopeampaa kuin koko tekstin kirjoittaminen aihe komento ja Palata avain.
Mukautettujen Vim-komentojen luominen
Komentotilaan siirtyminen kartan suorittamiseksi näyttää vähemmän hyödylliseltä. Mutta voit luoda omia mukautettuja komentoja Vimissä käyttämällä :komento vaihtoehto. Tämä ominaisuus muistuttaa melkoisesti Vim-näppäinkartoitusta. Jos haluat esimerkiksi luoda pikakomennon rivinumeron ja tekstinleveyden 80:ksi, käytä seuraavaa komentoa.
Siirry nyt komentotilaan ja suorita : Mycmd komento.
Operaattorin odottavan tilan kartoitus
Operaattorin odotustila on tila, jossa Vim odottaa liikekomentoa operaattorinäppäimen painamisen jälkeen. Yleiset operaattorit ovat y, d ja c. Jos esimerkiksi haluat poistaa nykyisen rivin ja 3 seuraavaa riviä, käytä d-operaattoria kanssa 3j liike (d3j). Et voi painaa näitä näppäimiä samanaikaisesti halutun toiminnon saavuttamiseksi.
Tilaa käytetään yleensä liikkeiden kartoittamiseen. Kartoitetaan liike, joka valitsee nykyisen rivin ja sen jälkeen 3 riviä.
:onoremap < F2 > 3jNyt voit vetää nykyisen rivin ja sen jälkeen 3 riviä käyttämällä theF2 avaimet, samalla tavalla d myös operaattoria voidaan käyttää.
Toinen tärkeä asia, joka on pidettävä mielessä, on, jos lisäät laskennan edellä mainittuun kartoitettuun liikkeeseen, oletetaan 2
Kuinka kartoittaa hiiren tapahtumia
Vaikka Vim on täysin muokattavissa oleva näppäimistökeskeinen tekstieditori, hiiren toimintojen saatavuus tekee siitä entistä paremman. Tavallisia näppäimistönäppäimiä lukuun ottamatta kaikki hiiren tapahtumat voidaan myös kartoittaa Vimissä. Jos esimerkiksi haluat yhdistää oikeanpuoleisen kaksoisnapsautuksen ja vasemman kaksoisnapsautuksen siirtääksesi merkit eteenpäin ja taaksepäin, käytä seuraavaa kartoitusta.
:noremap < 2 -Right Mouse > ] `:noremap < 2 -Vasen hiiri > [ `
Muut hiiritapahtumat, jotka voidaan yhdistää, on esitetty seuraavassa taulukossa.
|
|
|
<2-Left Mouse> | |
|
|
|
<2-RightMouse> | |
|
|
|
<3-Left Mouse> | |
<3-RightMouse> | |
|||
<4-Left Mouse> | |
|||
<4-RightMouse> | |
Kartan tekeminen Leader Key -avaimella Vimissä
Vim-kartoitus on epätäydellinen ilman johtoavainta. Johtajaavain on oletusavain, jota voidaan käyttää avaimien yhdistämiseen, vaikka ne olisi kartoitettu suorittamaan joitain muita tehtäviä. Jos olet esimerkiksi kartoittanut d -näppäintä poistaaksesi kaikki rivit, voimme yhdistää saman näppäimen poistamaan vain 5 riviä johtajanäppäimellä.
Niille, jotka eivät ole perehtyneet Vim-johtoavaimeen. Se on avain, jonka etuliitteenä on toinen näppäin tai näppäinsarja komentojen tai toimintojen yhdistämistä varten. Vimin oletusaloitusavain on kenoviiva (\), mutta se on muokattavissa.
Esimerkiksi, dd -komentoa käytetään kursorin alla olevan rivin poistamiseen. Jos haluat kartoittaa dd -komento poistaaksesi kaikki tiedostojen rivit, voit käyttää johtoavainta.
:noremap < Johtaja > dd ggVGdNyt aina kun painat \dd -näppäintä, kaikki tiedoston rivit poistetaan. Voit määrittää Vim-johtoavaimen ohjausnäppäimeksi Windowsissa tai komentoavaimeksi macOS:ssä.
Vimscript-funktion kartoittaminen
Vim-editori ei rajoitu komentoihin tai toimintoihin. Vimissä on koko ohjelmointikieli mukautetun Vimscript-toiminnon luomiseksi. Voit helposti luoda komentosarjan tai funktion ja yhdistää sen avaimeen. Luodaan esimerkiksi toiminto, joka ottaa käyttöön asetukset, kuten rivinumeron, hiiren toiminnot ja tekstinleveyden.
toiminto Asetukseni ( )aseta määrä
aseta hiiri =a
aseta tekstin leveys = 80
lopputoiminto
Aseta tämä funktio vimrc-tiedostoon.
Kartoitetaan tämä funktio johtajalla ja s-näppäimillä. Aion käyttää
:noremap < Johtaja > s: soita MySettingsiin ( ) < CR >Nyt aina kun painat \s näppäimiä, toimintoa kutsutaan ja kaikki toiminnon sisällä olevat toiminnot suoritetaan.
Huomautus : Toiminnon nimen ensimmäinen kirjain tulee aina kirjoittaa isolla, kun luot mukautetun funktion Vimissä.
Kuinka kartoittaa ulkoiset komennot Vimissä
Ulkoiset komennot voidaan myös kartoittaa Vimissä. Ulkoiset komennot viittaavat Linux- tai Unix-komentoihin. Jos esimerkiksi haluat kartoittaa ulkoisen järjestellä -komento lajitella kaikki nykyisen puskurin rivit muotoon F1 -näppäintä, käytä seuraavaa komentoa.
:noremap < F1 > : %! järjestellä < CR >Samalla tavalla, jos kirjoitat komentosarjatiedostoa ja teet siitä suoritettavan poistumatta Vim-istunnosta, voit käyttää chmod komento sisäisesti. Esimerkiksi, jos haluat tehdä nykyisestä tiedostosta suoritettavan, voit suorittaa komennon :!chmod +x % paikassa Vim. Jos suoritat tämän tehtävän usein, yhdistä siihen vain avain.
:noremap < F1 > : ! chmod +x %Vimissä mitä tahansa ulkoista komentoa voidaan käyttää huutomerkin (!) kanssa.
Näppäinkartan poistaminen Vimissä
Poistaaksesi näppäinkartat Vimissä, määritä ensin, missä se on määritetty. Kuten aiemmin mainittiin, näppäinkartat voivat olla puskuripaikallisia ja pysyviä. Jos näppäinkartta on pysyvä ja sijoitettu vimrc-tiedostoon, niiden poistaminen tiedostosta poistaa avainten yhdistämisen.
Jos kartoitus tehdään nykyisessä puskurissa, ne voidaan poistaa käyttämällä :poista kartta tai :poista kartta! komentoja.
- :poista kartta tyhjentääksesi normaalin, visuaalisen, valintatilan tai operaattorin odottavan tilan näppäinkartat
- :poista kartta! poistaaksesi lisäys- ja komentorivitilojen näppäinkartat
Esimerkiksi poistaaksesi
:nunmap | Voit poistaa kartat normaali -tilassa |
:iunmap | Voit poistaa kartat lisää -tilassa |
:vunmap | Voit poistaa kartat visuaalinen ja valitse -tilassa |
: aurinkokartta | Voit poistaa kartat valitse tila |
:xunmap | Voit poistaa kartat visuaalinen -tilassa |
:cunmap | Voit poistaa kartat komentorivi -tilassa |
:ounmap | Voit poistaa kartat operaattori odottamassa -tilassa |
Voit poistaa kaikki nykyisen puskurin kartat käyttämällä :mapclear komento.
:mapclearYllä oleva komento tyhjentää kaikki normaalin, visuaalisen, valinta- tai operaattorin odottavan tilan näppäinkartat.
Voit tyhjentää kaikki lisäys- ja komentorivitilojen näppäinkartat seuraavasti:
:mapclear ! Huomaa, että Vim-oletuskomennot eivät voi olla selkeitä, mutta ne voidaan poistaa käytöstä käyttämällä :poista kartta komento kanssa
dd ei enää toimi nykyisessä puskurissa. Tällä menetelmällä mikä tahansa näppäinkartta voidaan poistaa käytöstä nykyisessä istunnossa.
Vim Key Mapping -huijauslehti
Seuraava kuva sisältää luettelon kaikista komennoista ja niiden erityisistä tiloista viitteeksi.
Johtopäätös
Vim-näppäinkartoitus on kätevä tapa automatisoida tehtävät, usein käytetyt näppäinsidonta, komennot ja muut toiminnot. Se on monipuolinen aihe, ja tässä oppaassa käsitin kaikki tärkeimmät näkökohdat, jotka liittyvät Vimin avainkartoitukseen. Yleisestä syntaksista perusnäppäinkartan luomiseen ja aina edistyneiden Vimscript-toimintojen ja ulkoisten komentojen kartoittamiseen. Saat lisätietoja Vim-näppäinkartoituksesta käyttämällä :help key-mapping komento Vimissä.