In questa guida completa ti spiegherò come mappare i tasti in Vim per automatizzare le operazioni. Dalla creazione di una mappatura dei tasti di base alla mappatura dei tasti avanzata, insieme ai processi per renderli permanenti e rimuoverli.
- Sintassi
- Argomenti speciali di Vim
- Creazione di una mappatura dei tasti di base
- Elencare le mappe dei tasti
- Rendere permanenti le mappe dei tasti
- Evitare la ricorsione
- Creazione di mappe di tasti specifiche per la modalità
- Come mappare gli eventi del mouse
- Come mappare con la chiave Leader in Vim
- Come mappare una funzione Vimscript
- Come mappare i comandi esterni in Vim
- Come rimuovere una mappa dei tasti in Vim
- Foglio informativo sulla mappatura delle chiavi Vim
- Conclusione
Sintassi
Per mappare la chiave in Vim, viene utilizzata la seguente sintassi:
Nella sintassi sopra:
|
nmap, imap, vmap, xmap, cmap o omap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
*Nella sintassi precedente, la sezione Argomenti speciali di VimGli argomenti speciali di Vim sono tag utilizzati per fornire funzionalità aggiuntive alle mappe dei tasti. Questi argomenti appaiono dopo il comando :map e prima di {rhs} e {lhs}. Ad esempio, per rendere una mappa specifica per il buffer, utilizzare l'argomento speciale nel modo seguente: :carta geografica < respingente > < Circa > ggVG
Le notazioni chiave speciali di Vim sono menzionate nell'immagine seguente.
Ad esempio, se si desidera utilizzare la chiave spaziatrice nella mappatura dei tasti, verrà utilizzata la notazione Creazione di una mappa dei tasti di base in VimComprendiamo la mappatura dei tasti Vim con un esempio di base. Voglio mappare il comando seleziona tutte le righe ( ggVG ) A ctrl+a chiavi. Per mappare i tasti ctrl+a, eseguirò il seguente comando in Vim. :carta geografica < Circa > ggVG Qui, Allo stesso modo, per mappare il numero di riga, attivare/disattivare la funzionalità con F1 uso chiave: :carta geografica < F1 > :imposta il numero !Ora, quando si preme il tasto F1, il numero di linea verrà abilitato e premendolo nuovamente lo si disabiliterà. Tieni presente che questo metodo mapperà solo le chiavi nel buffer corrente e verrà rimosso alla chiusura del buffer. Elencare le mappe dei tastiPer elencare tutte le mappature dei tasti delle modalità normale, visiva e in attesa dell'operatore, utilizzare il comando :map. :carta geograficaPer elencare la mappatura dei tasti di inserire E riga di comando modalità, utilizzare :map! Comando. :carta geografica !Per elencare la mappatura dei tasti di una modalità specifica, basta digitare la lettera iniziale della modalità prima della parola chiave map.
Inoltre, per elencare tutte le mappe comprese le mappe plugin con percorsi, utilizzare : mappa dettagliata comando. : mappa dettagliata Per una chiave specifica, menziona semplicemente la chiave nel comando ( :mappa dettagliata Rendere permanenti le mappe dei tastiLe mappe dei tasti menzionate nella sezione precedente mapperanno i tasti solo nel buffer corrente. Per rendere permanenti le mappature dei tasti Vim, le mappe devono essere inserite nel file vimrc.
Tieni presente che mentre posizioni la mappa dei tasti nel file vimrc file, non aggiungere i due punti (:) prima del file carta geografica comando. Dopo aver posizionato la mappa dei tasti nel file vimrc file, salvalo ed esci usando il comando :wq o usando i tasti shift+zz. Le mappe dei tasti posizionate nel file vimrc il file sarà globale e potrà essere utilizzato in tutte le sessioni di Vim. Tuttavia, alcune mappe di tasti possono essere temporaneamente disabilitate se influenzano il lavoro nella sessione corrente, vedere la sezione Come rimuovere una mappa di tasti in Vim di seguito. IL vimrc è il file di impostazione di Vim che contiene vari comandi e impostazioni. È presente nel /usr/condividi/vim/ directory su macOS e /etc/vim su Linux. È importante notare che il vimrc i file nelle directory menzionate sono file specifici del sistema. Puoi modificare questi file anche per la mappatura dei tasti, ma consiglierei di creare un file specifico per l'utente vimrc file nella directory home. Evitare la ricorsionePrima di andare avanti, è importante conoscere la ricorsione nella mappatura dei tasti di Vim. I suoi svantaggi e come prevenirlo. Può essere compreso attraverso l'uso di un esempio. :carta geografica gg 3jddNell'esempio sopra, ho mappato il file gg tasti per spostarsi verso il basso di 3 righe e cancellare la riga sotto il cursore. Ora, quando premo il tasto gg , proverà ad eseguire la mappa 3jdd . Vim interpreterà il gg comando come mappa ed esegui la mappa ripetutamente, come mostrato nell'immagine seguente.
Nota : La ricorsione può bloccare l'editor Vim. Per sbloccarlo, premere ctrl+c chiavi. Per evitare la ricorsione, sostituire il file carta geografica parola chiave con noremap , Dove ' no ' significa non ricorsivo . Sostituirò il carta geografica parola chiave con noremap per correggere la ricorsione nella mappa dei tasti sopra. :noremap gg 3jddConsiglierò l'uso noremap invece di carta geografica per evitare di creare accidentalmente una mappatura ricorsiva. Creazione di mappe di tasti specifiche per la modalitàVim ha reso la mappatura dei tasti così versatile che anche la mappatura dei tasti di una modalità specifica può essere creata abbastanza facilmente. Ad esempio, se hai creato una mappatura dei tasti per la modalità di inserimento utilizzando un file F1 key, quindi puoi mappare lo stesso F1 tasto in un'altra modalità per un'operazione completamente nuova. Nell'esempio seguente, ho mappato il file F1 tasto per eliminare 3 righe nel file normale mode e strappa 3 righe nel file inserire modalità. :nmappa < F1 > 3gg:imap < F1 > < C-t > La prima mappa elimina tre righe in modalità normale quando si preme il tasto F1, mentre la seconda mappa aggiunge un rientro nella riga corrente quando si è in modalità di inserimento utilizzando lo stesso tasto. Ora, comprendiamo la mappatura in ciascuna modalità. Mappatura della modalità normalePer applicare una mappa in modalità normale, utilizzare solo nmap parola chiave. Ad esempio, per copiare tutte le righe di un file utilizzando ctrl+c keys, userò il seguente comando. :nmappa < C-c > ggVGyCome discusso in precedenza, è una buona pratica utilizzare un metodo non ricorsivo per mappare una chiave, pertanto sostituirò il nmap con nnoremap parola chiave. :nnoremap < C-c > ggVGyInseriscilo senza i due punti (:) nel file vimrc file per renderlo una mappa dei tasti permanente. userò noremap invece del carta geografica nell'esempio seguente. Inserisci mappatura modalitàPer mappare i tasti per la modalità di inserimento, basta usare io invece di N . Ad esempio, in modalità di inserimento, ctrl+p E ctrl+n i tasti vengono utilizzati per completare automaticamente la parola in base rispettivamente alla corrispondenza all'indietro e in avanti. Per mappare il ctrl+p tasti con il tasto tab, userò il seguente comando. :inoremap < Tab > < C-p > Ancora più importante, se vuoi mappare modalità in attesa dell'operatore comandi nel modalità di inserimento , quindi è necessario inserire il file Ora, quando premo il tasto ctrl+x tasti, stamperà il file 3ddi comando invece di eseguirlo.
Per risolverlo, inserirò il file Ora il comando eseguirà il mantenimento della modalità di inserimento. Molti mini laptop non hanno il Esc chiave, che è importante per uscire dalla modalità corrente. Quindi, per mappare il Esc tasto per uscire dalla modalità di inserimento, è possibile utilizzare la mappatura dei tasti. Nell'esempio seguente, sto usando ex tasti per uscire dalla modalità normale. :inoremap es < Esc >Quando si preme rapidamente il ex si uscirà dalla modalità di inserimento, entrando così nella modalità normale. Mappatura della modalità visivaLa modalità visiva è una modalità molto significativa per selezionare il testo nell'editor Vim. Oltre alla selezione di base, la modalità visiva ha altre modalità diverse come la modalità linea visiva e la modalità blocco visivo. Nella modalità visiva, tilde (~) viene utilizzato per alternare il caso. Per utilizzare la tilde (~), è necessario premere i due tasti (maiusc+~) . Nell'esempio seguente, sto mappando la chiave c modalità visiva per selezionare una parola sotto il cursore e cambiarne le maiuscole e minuscole. :vnoremap c iw~Ora premi v per accedere alla modalità visiva e premi il tasto c per alternare la parola sotto il cursore come mostrato nella seguente GIF.
Mappatura della modalità della riga di comandoMolti comandi essenziali di Vim funzionano solo in modalità riga di comando. Ad esempio, per salvare il file :In il comando viene utilizzato, in modo simile, per salvare e uscire :wq viene utilizzato il comando. Tutte le schede e le operazioni di divisione vengono eseguite anche in modalità riga di comando. Ad esempio, per creare una nuova scheda, il file : subordinato viene utilizzato il comando. Bene, per creare rapidamente una scheda, ctrl+t bastano le chiavi :cnoremap < C-t > soggetto < CR >Ora premi i due punti (:) per accedere alla modalità della riga di comando, quindi ctrl+t per aprire una nuova scheda; è molto più veloce che digitare l'intero testo soggetto comando e Ritorno chiave.
Creazione di comandi personalizzati Vim Ora, entra nella modalità comando ed esegui il file :Miocmd comando. Mappatura modalità operatore in sospesoLa modalità operatore in attesa è una modalità in cui Vim attende il comando di movimento dopo aver premuto il tasto operatore. Gli operatori comuni sono y, d e c. Ad esempio, per eliminare la riga corrente e le 3 righe successive, utilizzerai l'operatore d con 3j movimento (d3j). Non è possibile premere questi tasti contemporaneamente per ottenere l'operazione desiderata. La modalità viene generalmente utilizzata per mappare i movimenti. Mappiamo un movimento che selezionerà la linea corrente e le 3 linee seguite da essa. :onoremap < F2 > 3jOra, per estrarre la riga corrente e le 3 righe seguite da essa, utilizzare il comando l'F2 tasti, allo stesso modo, il D è possibile applicare anche l'operatore. Un'altra cosa importante da tenere a mente è se aggiungi un conteggio al movimento mappato sopra, diciamo 2 Come mappare gli eventi del mouseSebbene Vim sia un editor di testo incentrato sulla tastiera completamente personalizzabile, la disponibilità della funzionalità del mouse lo rende ancora migliore. Oltre ai normali tasti della tastiera, in Vim è possibile mappare anche tutti gli eventi del mouse. Ad esempio, se desideri mappare il doppio clic destro e il doppio clic sinistro per spostare i segni rispettivamente in avanti e all'indietro, utilizza la seguente mappatura. :noremap < 2 -Mouse destro > ] `:noremap < 2 - Mouse sinistro > [ ` Altri eventi del mouse che possono essere mappati sono riportati nella tabella seguente.
Come mappare con la chiave Leader in VimLa mappatura Vim è incompleta senza la chiave leader. La chiave leader è la chiave predefinita che può essere utilizzata per mappare le chiavi, anche se sono mappate per svolgere altre attività. Ad esempio, se hai mappato il file D tasto per eliminare tutte le righe, quindi possiamo mappare lo stesso tasto per eliminare solo 5 righe utilizzando il tasto leader. Per chi non ha dimestichezza, con la chiave Vim leader. È una chiave che ha come prefisso un'altra chiave o un insieme di chiavi per la mappatura di comandi o operazioni. La chiave leader predefinita di Vim è una barra rovesciata (\), ma è personalizzabile. Ad esempio, il gg Il comando viene utilizzato per eliminare la riga sotto il cursore. Se vuoi mappare il gg comando per eliminare tutte le righe nei file, quindi puoi utilizzare la chiave iniziale. :noremap < Capo > gg ggVGdOra, ogni volta che premi il \gg tasto, tutte le righe del file verranno cancellate. Puoi attribuire il tasto leader Vim come tasto control su Windows o tasto comando su macOS. Come mappare una funzione VimscriptL'editor Vim non si limita ai comandi o alle operazioni. Esiste un intero linguaggio di programmazione attorno a Vim per creare funzionalità personalizzate chiamate Vimscript. Puoi facilmente creare uno script o una funzione e mapparlo su una chiave. Ad esempio, creiamo una funzione che abiliterà impostazioni come numero di riga, funzionalità del mouse e larghezza del testo. funzione Le mie impostazioni ( )impostato numero impostato topo =a impostato larghezza del testo = 80 endfunction Inserisci questa funzione nel file vimrc. Mappiamo questa funzione con la direttrice e i tasti s. userò :noremap < Capo > s: chiama MySettings ( ) < CR >Ora, ogni volta che premi il \S tasti, la funzione verrà chiamata e qualsiasi funzionalità all'interno della funzione verrà eseguita. Nota : La prima lettera del nome della funzione dovrebbe essere sempre in maiuscolo durante la creazione di una funzione personalizzata in Vim. Come mappare i comandi esterni in VimI comandi esterni possono essere mappati anche in Vim. I comandi esterni si riferiscono ai comandi Linux o Unix. Ad esempio, se vuoi mappare il file external ordinare comando per ordinare tutte le righe nel buffer corrente in F1 chiave, utilizzare il seguente comando. :noremap < F1 > : %! ordinare < CR >Allo stesso modo, se state scrivendo un file di script e rendendolo eseguibile senza uscire dalla sessione di Vim, potete utilizzare il comando chmod comandare internamente. Ad esempio, per rendere eseguibile il file corrente, è possibile eseguire il comando :!chmod +x % a Vim. Se esegui spesso questa attività, associa semplicemente una chiave ad essa. :noremap < F1 > : ! chmod +x %In Vim qualsiasi comando esterno può essere utilizzato con un segno esclamativo (!). Come rimuovere una mappa dei tasti in VimPer rimuovere le mappe dei tasti in Vim, identifica prima dove è definita. Come discusso in precedenza, le mappe dei tasti possono essere locali nel buffer e permanenti. Se la mappatura dei tasti è permanente e inserita nel file vimrc, la semplice rimozione dal file annullerà la mappatura dei tasti. Se la mappatura viene eseguita nel buffer corrente, è possibile rimuoverli utilizzando il file :unmap O :annulla mappa! comandi.
Ad esempio, per rimuovere il
Per rimuovere tutte le mappe nel buffer corrente, utilizzare il file :mapclear comando. :mapclearIl comando precedente cancellerà tutte le mappe dei tasti della modalità normale, visiva, di selezione o in attesa dell'operatore. Per cancellare tutte le mappe dei tasti delle modalità di inserimento e riga di comando utilizzare: :mapclear ! Tieni presente che i comandi Vim predefiniti non possono essere cancellati, tuttavia possono essere disabilitati utilizzando il comando :unmap comandare con Il dd non sarà più funzionale nel buffer corrente. Utilizzando questo metodo, qualsiasi mappa dei tasti può essere disabilitata per la sessione corrente. Foglio informativo sulla mappatura delle chiavi VimL'immagine seguente fornisce un elenco di tutti i comandi e le relative modalità specifiche come riferimento.
ConclusioneLa mappatura dei tasti Vim è un modo pratico per automatizzare le attività, l'associazione dei tasti utilizzati di frequente, i comandi e altre operazioni. È un argomento vario e in questa guida ho trattato tutti gli aspetti principali relativi alla mappatura dei tasti in Vim. Dalla sintassi generale alla creazione di una mappa dei tasti di base fino alla mappatura di funzioni Vimscript avanzate e comandi esterni. Per saperne di più sulla mappatura dei tasti Vim, usa il file :aiuto nella mappatura dei tasti comando in Vim. |