Zoeken…


Invoering

Door Vim-toetstoewijzingen bij te werken, kunt u twee soorten problemen oplossen: toetsopdrachten opnieuw toewijzen aan letters die meer onthouden of toegankelijk zijn, en toetsopdrachten maken voor functies die er geen hebben. Hier leert u over de verschillende manieren om toetsopdrachten [opnieuw] toe te wijzen en de context waarop ze van toepassing zijn (dwz vim-modi)

Basic mapping

kaart Overzicht

Een toetsenreeks kan opnieuw toegewezen aan een toetsencombinatie via een van zijn map varianten.

Als voorbeeld, de volgende typische map zal Invoegmodus af te sluiten wanneer u op j k in snelle reeks:

:inoremap jk <Esc>

kaart Operator

Er zijn meerdere varianten van :map voor verschillende modi.

commando's modes
:map , :noremap , :unmap Normale, visuele en operator-wachtende modus
:map! , :noremap! , :unmap! Invoegen en opdrachtregelmodus
:nmap :nnoremap :nunmap Normale modus
:imap :inoremap :iunmap Invoegen en vervangen modus
:vmap :vnoremap :vunmap Visuele en selecteermodus
:xmap :xnoremap :xunmap Visuele modus
:smap :snoremap :sunmap Selecteer modus
:cmap :cnoremap :cunmap Opdrachtregelmodus
:omap :onoremap :ounmap Operator in afwachting van modus

Meestal moet u de :noremap varianten gebruiken :noremap ; het maakt de mapping immuun voor remapping en recursie.

map Command

  • U kunt alle toewijzingen weergeven met :map (of een van de bovenstaande variaties).
  • Als u de huidige toewijzing voor een specifieke toetsenreeks wilt weergeven, gebruikt u :map <key> waarbij <key > een reeks toetsen is
  • Specials-toetsen zoals Esc worden toegewezen met behulp van speciale <> notatie, zoals <Esc> . Zie http://vimdoc.sourceforge.net/htmldoc/intro.html#keycodes voor de volledige lijst met sleutelcodes.
  • :nmapclear - Wis alle kaarten van de normale modus
  • :nunmap - :nunmap een kaart in de normale modus :nunmap
  • U kunt de maximale tijd tussen toetsen van een reeks configureren door de timeout ttimeout en ttimeout variabelen te wijzigen

Voorbeelden

  • imap jk <Esc> : door jk in de imap jk <Esc> typen, keert u terug naar de normale modus
  • nnoremap tt :tabnew<CR> : als u tt in de normale modus typt, wordt een nieuw tabblad geopend
  • nnoremap <Cj> <Cw>j : door <Cj> typen in de normale modus, springt u naar het onderstaande venster en naar links
  • vmap <Cc> \cc : als u <Cc> typt in de visuele modus, wordt \cc (opdracht NERDCommenter om commentaar op de regel te geven). Omdat dit afhankelijk is van een plug-in mapping, kunt u niet gebruiken :vnoremap hier!

verder lezen hier

Toetscombinatie kaartleider

De leidersleutel kan worden gebruikt als een manier om een afbeelding te maken met een sleutelbinding die door de eindgebruiker kan worden opgeheven.

De leider is standaard de \ -toets. Om het te overschrijven, moet de eindgebruiker het volgende uitvoeren :let g:mapleader='somekey(s)' voordat de toewijzing wordt gedefinieerd.

In een typisch scenario wordt de mapleader ingesteld in .vimrc en plug-ins gebruiken <Leader> in het sleutelbindende deel van hun toewijzingen om ze aan te passen.

In de plug-in zouden we toewijzingen definiëren met:

:nnoremap <Leader>a somecomplexaction

Dit zou de somecomplexactie- actie toewijzen aan de \ + een toetscombinatie.

De a actie zonder de leider verandert niet.

Het is ook mogelijk om <Plug>Mappings te gebruiken om meer ruimte over te laten om de keybindings van plug-ins aan te passen.

Illustratie van basismapping (handige sneltoetsen).

In de meeste teksteditors is de standaardsnelkoppeling voor het opslaan van het huidige document Ctrl + S (of Cmd + S op macOS).

Vim heeft deze functie niet standaard, maar dit kan worden toegewezen om dingen gemakkelijker te maken. Het toevoegen van de volgende regels in .vimrc bestand .vimrc .

nnoremap <c-s> :w<CR>
inoremap <c-s> <c-o>:w<CR>

De opdracht nnoremap opdracht Ctrl + s toe aan :w (schrijf de huidige inhoud naar het bestand), terwijl de opdracht inoremap opdracht Ctrl + S inoremap aan :w en terugkeert naar de inoremap ( <co> gaat naar de normale modus voor één opdracht en keert daarna terug naar de invoegmodus, zonder de cursorpositie te wijzigen die andere oplossingen zoals <esc>:w<cr>a niet kunnen garanderen).

Evenzo

" This is commented, as Ctrl+Z is used in terminal emulators to suspend the ongoing program/process.
" nnoremap <c-z> :u<CR>

" Thus, Ctrl+Z can be used in Insert mode
inoremap <c-z> <c-o>:u<CR>

" Enable Ctrl+C for copying selected text in Visual mode
vnoremap <c-c> <c-o>:y<CR>

PS: Er moet echter worden opgemerkt dat Ctrl + S mogelijk niet werkt zoals verwacht tijdens het gebruik van ssh (of PuTTY). De oplossing hiervoor is niet binnen de reikwijdte van dit document, maar kan worden gevonden Hier .



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow