Šiame išsamiame vadove paaiškinsiu, kaip susieti Vim klavišus, kad būtų automatizuotos operacijos. Nuo pagrindinio raktų žemėlapio kūrimo iki išplėstinio raktų atvaizdavimo, taip pat jų nuolatinio nustatymo ir pašalinimo.
- Sintaksė
- Vim specialieji argumentai
- Pagrindinės klavišų schemos kūrimas
- Klavišų žemėlapių sąrašas
- Klavišų žemėlapių pavertimas nuolatiniais
- Rekursijos išvengimas
- Režimui būdingų klavišų schemų kūrimas
- Kaip susieti pelės įvykius
- Kaip sudaryti žemėlapį naudojant „Leader Key“ „Vim“.
- Kaip susieti Vimscript funkciją
- Kaip susieti išorines komandas Vim
- Kaip pašalinti klavišų schemą Vim
- Vim Key Mapping Cheat Sheet
- Išvada
Sintaksė
Norėdami susieti raktą Vim, naudojama ši sintaksė:
Aukščiau pateiktoje sintaksėje:
|
nmap, imap, vmap, xmap, cmap arba omap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
*Aukščiau pateiktoje sintaksėje skiltis Vim specialieji argumentai„Vim Special Arguments“ yra žymos, naudojamos papildomoms klaviatūros funkcijoms suteikti. Šie argumentai rodomi po komandos :map ir prieš {rhs} ir {lhs}. Pavyzdžiui, norėdami nustatyti žemėlapio buferį, naudokite specialųjį argumentą tokiu būdu: :žemėlapis < buferis > < C-a > ggVG
Šiame paveikslėlyje paminėti specialūs Vim klavišų užrašai.
Pavyzdžiui, jei norite naudoti tarpo klavišą klavišų atvaizdavime, bus naudojamas žymėjimas Pagrindinio klavišų žemėlapio kūrimas VimSupraskime Vim klavišų atvaizdavimą naudodami pagrindinį pavyzdį. Noriu susieti komandą pasirinkti visas eilutes ( ggVG ) į ctrl+a raktai. Norėdami susieti ctrl + a klavišus, Vim paleisiu šią komandą. :žemėlapis < C-a > ggVG Čia Panašiai, norėdami susieti eilutės numerį, perjunkite funkciją su F1 rakto naudojimas: :žemėlapis < F1 > :nustatyti numerį !Dabar, kai paspausite klavišą F1, eilutės numeris bus įjungtas, o dar kartą paspaudus jį išjungsite. Atminkite, kad šis metodas susieis tik dabartinio buferio raktus ir bus pašalintas uždarius buferį. Klavišų žemėlapių sąrašasNorėdami išvardyti visus įprasto, vaizdinio ir operatoriaus laukiančio režimo klavišų atvaizdus, naudokite komandą :map. :žemėlapisNorėdami išvardyti klavišų atvaizdavimą Įdėti ir komandinė eilutė režimus, naudokite :map! komandą. :žemėlapis !Norėdami išvardyti konkretaus režimo klavišų atvaizdavimą, tiesiog įveskite pradinę režimo raidę prieš žemėlapio raktinį žodį.
Be to, norėdami išvardyti visus žemėlapius, įskaitant papildinių žemėlapius su keliais, naudokite :verbose žemėlapis komandą. :verbose žemėlapis Tam tikram klavišui tiesiog paminėkite raktą komandoje ( :verbose žemėlapis Klavišų žemėlapių pavertimas nuolatiniaisAukščiau esančiame skyriuje paminėtos klavišų schemos atvaizduos raktus tik dabartiniame buferyje. Kad Vim raktų susiejimas būtų nuolatinis, žemėlapiai turi būti patalpinti į vimrc failą.
Atkreipkite dėmesį, kad įdėdami klavišų schemą į vimrc failą, nepridėkite dvitaško (:) prieš žemėlapį komandą. Įdėję klavišų schemą į vimrc failą, išsaugokite ir uždarykite jį naudodami komandą :wq arba klavišus Shift+zz. Klavišų žemėlapiai, patalpinti į vimrc failas bus visuotinis ir gali būti naudojamas visose Vim sesijose. Tačiau kai kurios klavišų schemos gali būti laikinai išjungtos, jei jos turi įtakos darbui dabartinėje sesijoje. Toliau žr. skyrių Kaip pašalinti klavišų schemą Vim. The vimrc yra Vim nustatymų failas, kuriame yra įvairių komandų ir nustatymų. Jis yra /usr/share/vim/ katalogas „MacOS“ ir /etc/vim Linux sistemoje. Svarbu pažymėti, kad vimrc failai minėtuose kataloguose yra konkrečios sistemos failai. Šiuos failus taip pat galite redaguoti norėdami susieti raktus, tačiau rekomenduočiau sukurti konkretų vartotoją vimrc failą namų kataloge. Rekursijos išvengimasPrieš judant į priekį, svarbu sužinoti apie rekursiją Vim klavišų atvaizdavime. Jo trūkumai ir kaip to išvengti. Tai galima suprasti naudojant pavyzdį. :žemėlapis dd 3jddAukščiau pateiktame pavyzdyje sudariau žemėlapį dd klavišus, norėdami pereiti 3 eilutes žemyn ir ištrinti eilutę po žymekliu. Dabar, kai paspaudžiu dd , ji bandys vykdyti žemėlapį 3jdd . Vim interpretuos dd komandą kaip žemėlapį ir pakartotinai vykdykite žemėlapį, kaip parodyta kitame paveikslėlyje.
Pastaba : Rekursija gali sustabdyti Vim redaktorių. Norėdami jį atšaldyti, paspauskite ctrl+c raktai. Kad išvengtumėte pasikartojimo, pakeiskite žemėlapį raktažodis su noremap , kur ' nore “ reiškia nerekursyvus . Aš pakeisiu žemėlapį raktažodis su noremap kad ištaisytumėte rekursiją aukščiau pateiktoje klavišų schemoje. :noremap dd 3jddAš rekomenduosiu naudoti noremap vietoj žemėlapį kad netyčia nesukurtumėte rekursinio atvaizdavimo. Režimui būdingų klavišų schemų kūrimas„Vim“ klavišų atvaizdavimą padarė tokį universalų, kad net konkretaus režimo klavišų schemą galima sukurti gana lengvai. Pavyzdžiui, jei sukūrėte įterpimo režimo klavišų schemą naudodami a F1 klavišą, tada galite susieti tą patį F1 įjunkite kitą režimą, kad atliktumėte visiškai naują veiksmą. Toliau pateiktame pavyzdyje sudariau žemėlapį F1 klavišą, norėdami ištrinti 3 eilutes normalus režimu ir patraukite 3 eilutes Įdėti režimu. :nmap < F1 > 3d:imap < F1 > < C-t > Pirmasis žemėlapis ištrina tris eilutes įprastu režimu, kai paspaudžiamas klavišas F1, o antrasis žemėlapis prideda vieną įtrauką dabartinėje eilutėje, kai įterpimo režimu naudojamas tas pats klavišas. Dabar supraskime žemėlapių sudarymą kiekviename režime. Įprasto režimo atvaizdavimasNorėdami pritaikyti žemėlapį įprastu režimu, naudokite tik nmap raktažodį. Pavyzdžiui, norėdami nukopijuoti visas failo eilutes naudodami ctrl+c klavišus, naudosiu šią komandą. :nmap < C-c > ggVGyKaip aptarta anksčiau, geriausia yra naudoti nerekursyvų metodą raktui susieti, todėl aš pakeisiu nmap su nnoremalapas raktažodį. :nnoremap < C-c > ggVGyĮdėkite jį be dvitaškio (:) į vimrc failą, kad jis taptų nuolatine klavišų schema. naudosiu noremap vietoj žemėlapį toliau pateiktame pavyzdyje. Įterpti režimo atvaizdavimąNorėdami susieti įterpimo režimo klavišus, tiesiog naudokite i vietoj n . Pavyzdžiui, įterpimo režimu ctrl+p ir ctrl+n klavišai naudojami automatiškai užbaigti žodį, atsižvelgiant į atitiktį atgal ir pirmyn. Norėdami nustatyti ctrl+p klavišus su tab klavišu, naudosiu šią komandą. :inoremap < Skirtukas > < C-p > Dar svarbiau, jei norite sudaryti žemėlapį operatoriaus laukiamas režimas komandos įterpimo režimas , tada reikia įterpti Dabar, kai paspaudžiu ctrl+x klavišus, jis išspausdins 3ddi komandą, o ne ją vykdyti.
Kad pataisyčiau, įdėsiu Dabar komanda vykdys komandą laikyti mane įterpimo režimu. Daugeliui mini nešiojamųjų kompiuterių trūksta Esc klavišą, kuris yra svarbus norint išeiti iš esamo režimo. Taigi, norint nustatyti Esc klavišą, kad išeitumėte iš įterpimo režimo, galima naudoti klavišų susiejimą. Toliau pateiktame pavyzdyje aš naudoju pvz klavišus, kad išeitumėte į įprastą režimą. :noremap ex < Esc >Kai greitai paspausite pvz mygtukais bus išjungtas įterpimo režimas, taip įeinant į įprastą režimą. Vaizdo režimo atvaizdavimasVaizdinis režimas yra labai svarbus režimas pasirenkant tekstą Vim redaktoriuje. Be pagrindinio pasirinkimo, vaizdinis režimas turi kitus skirtingus režimus, pvz., vaizdinės linijos ir vaizdo bloko režimus. Vaizdiniame režime tildė (~) naudojamas perjungti atvejus. Norėdami naudoti tildę (~), turite paspausti du klavišus (Shift+~) . Šiame pavyzdyje aš susieju c klavišą vizualinis režimas norėdami pasirinkti žodį po žymekliu ir pakeisti jo didžiąsias ir mažąsias raides. :vnoremap c iw~Dabar paspauskite v, kad įeitumėte į vaizdo režimą, ir paspauskite klavišą c, kad perjungtumėte žodį po žymekliu, kaip parodyta kitame GIF.
Komandinės eilutės režimo atvaizdavimasDaugelis esminių Vim komandų veikia tik komandinės eilutės režimu. Pavyzdžiui, norint išsaugoti failą :In komanda taip pat naudojama išsaugoti ir išeiti :wq naudojama komanda. Visi skirtukai ir padalijimo operacijos taip pat atliekamos komandinės eilutės režimu. Pavyzdžiui, norėdami sukurti naują skirtuką, : pavaldinys naudojama komanda. Na, norėdami greitai sukurti skirtuką, ctrl+t raktų užtenka. :cnoremap < C-t > tema < CR >Dabar paspauskite dvitaškį (:), kad įeitumėte į komandinės eilutės režimą, tada ctrl+t atidaryti naują skirtuką; tai daug greičiau nei įvesti visą tekstą tema komandą ir Grįžti Raktas.
„Vim“ tinkintų komandų kūrimas Dabar įeikite į komandų režimą ir vykdykite : Mycmd komandą. Operatoriaus laukiamo režimo atvaizdavimasOperatoriaus laukiantis režimas yra režimas, kai Vim laukia judesio komandos po to, kai paspaudžiamas operatoriaus klavišas. Įprasti operatoriai yra y, d ir c. Pavyzdžiui, norėdami ištrinti dabartinę eilutę ir 3 kitas eilutes, naudokite operatorių d su 3j judesys (d3j). Negalite vienu metu paspausti šių klavišų, kad atliktumėte norimą veiksmą. Režimas paprastai naudojamas judesiams atvaizduoti. Sukurkime judesį, kuris pasirinks dabartinę eilutę ir 3 eilutes, po kurių ji bus. :onoremap < F2 > 3jDabar, norėdami patraukti dabartinę eilutę ir 3 eilutes, po kurių ji eina, naudokite F2 raktus, tokiu pat būdu, d taip pat gali būti taikomas operatorius. Kitas svarbus dalykas, kurį reikia turėti omenyje, yra tai, kad pridėjus skaičių prie aukščiau minėto susieto judesio, tarkime, 2 Kaip susieti pelės įvykiusNors „Vim“ yra visiškai pritaikoma į klaviatūrą orientuota teksto rengyklė, dėl pelės funkcijų jis tampa dar geresnis. Be įprastų klaviatūros klavišų, visi pelės įvykiai taip pat gali būti susieti Vim. Pavyzdžiui, jei norite susieti dešinįjį dvigubą spustelėjimą ir kairįjį dvigubą spustelėjimą, kad peršoktumėte žymes atitinkamai pirmyn ir atgal, naudokite toliau pateiktą atvaizdavimą. :noremap < 2 - Dešinė pelė > ] `:noremap < 2 - Kairioji pelė > [ ` Kiti pelės įvykiai, kuriuos galima susieti, pateikti šioje lentelėje.
Kaip sudaryti žemėlapį naudojant „Leader Key“ VimVim atvaizdavimas yra neišsamus be lyderio rakto. Vadovo klavišas yra numatytasis klavišas, kurį galima naudoti klavišams susieti, net jei jie susieti kai kurioms kitoms užduotims atlikti. Pavyzdžiui, jei susiejote d klavišą, kad ištrintumėte visas eilutes, tada mes galime susieti tą patį klavišą, kad ištrintume tik 5 eilutes, naudodami pagrindinį klavišą. Tiems, kurie nėra susipažinę su Vim lyderio raktu. Tai yra raktas, kuris yra priešdėlis su kitu klavišu arba klavišų rinkiniu komandoms ar operacijoms susieti. Numatytasis Vim lyderio raktas yra pasvirasis brūkšnys (\), tačiau jį galima tinkinti. Pavyzdžiui, dd komanda naudojama norint ištrinti eilutę po žymekliu. Jei norite sudaryti žemėlapį dd komandą, norėdami ištrinti visas failų eilutes, tada galite naudoti lyderio klavišą. :noremap < Lyderis > dd ggVGdDabar, kai paspausite \dd klavišą, visos failo eilutės bus ištrintos. Vim lyderio klavišą galite priskirti kaip valdymo klavišą sistemoje „Windows“ arba komandos klavišą „MacOS“. Kaip susieti Vimscript funkcijąVim redaktorius neapsiriboja komandomis ar operacijomis. „Vim“ yra visa programavimo kalba, skirta sukurti pasirinktines funkcijas, vadinamas „Vimscript“. Galite lengvai sukurti scenarijų ar funkciją ir susieti jį su raktu. Pavyzdžiui, sukurkime funkciją, kuri įgalins tokius nustatymus kaip eilutės numeris, pelės funkcijos ir teksto plotis. funkcija Mano nustatymai ( )rinkinys numerį rinkinys pelė =a rinkinys teksto plotis = 80 pabaigos funkcija Įdėkite šią funkciją į vimrc failą. Pažymėkime šią funkciją su lyderiu ir s klavišais. naudosiu :noremap < Lyderis > s : skambinkite Mano nustatymai ( ) < CR >Dabar, kai paspausite \s klavišus, funkcija bus iškviesta ir visos funkcijos viduje bus vykdomos. Pastaba : Kuriant pasirinktinę funkciją Vim, pirmoji funkcijos pavadinimo raidė visada turi būti didžioji. Kaip susieti išorines komandas VimIšorinės komandos taip pat gali būti susietos su Vim. Išorinės komandos reiškia Linux arba Unix komandas. Pavyzdžiui, jei norite susieti išorinę rūšiuoti komanda surūšiuoti visas eilutes dabartiniame buferyje į F1 klavišą, naudokite šią komandą. :noremap < F1 > : %! rūšiuoti < CR >Lygiai taip pat, jei rašote scenarijaus failą ir darote jį vykdomą neišeidami iš Vim seanso, galite naudoti chmod komandą viduje. Pavyzdžiui, norėdami, kad dabartinis failas būtų vykdomas, galite vykdyti komandą :!chmod +x % mieste Vim. Jei dažnai atliekate šią užduotį, tiesiog susiekite jos raktą. :noremap < F1 > : ! chmod +x %Vim programoje bet kuri išorinė komanda gali būti naudojama su šauktuko (!) ženklu. Kaip pašalinti klavišų schemą VimNorėdami pašalinti Vim klavišų schemas, pirmiausia nustatykite, kur ji apibrėžta. Kaip aptarta anksčiau, klavišų žemėlapiai gali būti buferiniai ir nuolatiniai. Jei klavišų schema yra nuolatinė ir įdėta į vimrc failą, tiesiog pašalinus juos iš failo, klavišai bus panaikinti. Jei atvaizdavimas atliekamas esamame buferyje, juos galima pašalinti naudojant :atskleisti žemėlapį arba :atskleisti žemėlapį! komandas.
Pavyzdžiui, norint pašalinti
Norėdami pašalinti visus žemėlapius iš esamo buferio, naudokite :mapclear komandą. :mapclearAukščiau pateikta komanda išvalys visas įprasto, vaizdinio, pasirinkimo arba operatoriaus laukiančio režimo klavišų schemas. Norėdami išvalyti visas įterpimo ir komandinės eilutės režimų klaviatūras, naudokite: :mapclear ! Atminkite, kad numatytosios Vim komandos negali būti aiškios, tačiau jas galima išjungti naudojant :atskleisti žemėlapį komandą su Dabartiniame buferyje dd nebeveiks. Naudojant šį metodą, dabartinės sesijos metu galima išjungti bet kurią klavišų schemą. Vim Key Mapping Cheat SheetToliau pateiktame paveikslėlyje pateikiamas visų komandų sąrašas ir jų specifiniai režimai.
IšvadaVim klavišų atvaizdavimas yra patogus būdas automatizuoti užduotis, dažnai naudojamus klavišų susiejimą, komandas ir kitas operacijas. Tai įvairi tema, todėl šiame vadove aprašiau visus pagrindinius aspektus, susijusius su pagrindinių Vim žemėlapių sudarymu. Nuo bendrosios sintaksės iki pagrindinės klavišų schemos sukūrimo ir iki išplėstinių Vimscript funkcijų ir išorinių komandų susiejimo. Norėdami sužinoti daugiau apie Vim klavišų atvaizdavimą, naudokite :help key-mapping komanda Vim. |