Come ottenere il nome della chiave da codificare per keymap in vimrc?


10

In Emacs, posso premere Ctrl-h, k, per descrivere una chiave. Posso ottenere il nome della chiave anche se non è definito, ad es.

C-x <C-M-end> is undefined

Quindi, ho conosciuto il nome della chiave C-x <C-M-end>.

Ma come puoi ottenere il nome chiave per Vim?

Voglio impostare una keymap per Ctrl-Shift-Ve Shift-Insert, ma quale codice devo usare?

È possibile ottenere il nome della chiave al volo?

Risposte:


2

Il più vicino che riesco a trovare describe-key( Ctrl+ H, K) è il :mapcomando. Elencherà tutti i mapping.

Puoi anche eseguire :map <key name>, ma devi specificare <key>usando la sintassi speciale elencata nella
notazione chiave .

Oppure puoi provare :mapCtrl+ V<key>, che dovrebbe lasciarti premere il tasto invece di usare la sintassi speciale.

Quindi per associare Ctrl+ Shift+ V, prova questo:

:map <C-S-v> whatever

o

:mapCtrl+ V Ctrl+ Shift+V whatever

Ma assicurati che il tuo programma terminale non lo usi già per qualcosa di speciale come incolla, altrimenti Vim non vedrà mai premere il tasto.

Vedi anche map-alt-keys , che aiuta a spiegare se la tua Altchiave deve essere scritta come <M-x>o <A-x>.


È Ctrl-h, k, non Ctrl-X, k che significa kill buffer.
Xiè Jìléi,

Mi dispiace, risolto quello.
Mikel,

Non sono sicuro se Mo Asarà mappato Alt. Ma <M-h>, <M-l>non funziona. Non so se il nome della chiave non è valido o gli eventi chiave non sono stati inviati a Vim. Nessun registro, nessun indizio.
Xiè Jìléi,

Sì, Altè difficile, perché la maggior parte terminali inviano ESCpoi x, quando Alt+xviene premuto, e come Vim sa non è stato premuto ESCallora x. Fondamentalmente Altfunziona solo in Gvim.
Mikel,

5

Per scoprire cosa genera una chiave o una combinazione di tasti in Vim, di solito apro un buffer vuoto con " :enew", accedo alla modalità di inserimento, premo control-v, quindi la chiave o la combinazione di tasti che voglio identificare. Questo trucco control-v può anche funzionare sulla riga: -command, quindi definire le mappature per i test è abbastanza semplice. Ad esempio, " :map " control-ve la combinazione di tasti " :echo 'it works'".


0

Basta digitare Ctrl+ Val volo e i tasti che si desidera premere. Se non ha trovato il risultato previsto (come ad esempio <c-space>, <c-cr>, <M-i>, ...) significa solo che si sta utilizzando vim e non gvim. Il modo in cui vim comprende le chiavi digitate è legato alla configurazione dei terminali. gvim usa le proprie definizioni, quindi non c'è nulla da configurare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.