Mappatura di Ctrl con uguale segno


10

Sto cercando di mappare il mio Ctrl e il segno più insieme. Questo è quello che sto provando nel mio vimrc:

nnoremap <C-=>    : echo "Hello" <CR> 

Tuttavia, sembra che la mappatura non venga attivata. Qualche suggerimento su cosa potrei fare di sbagliato? Sto usando macvim.



1
Sembra che questo tipo di domanda stia diventando sempre più frequente: VIM come mappare il tasto
Combina

@mMontu Sì, è una domanda abbastanza comune. Mi chiedo se sarebbe una buona idea scrivere un post canonico sulla rappresentazione interna di vim di personaggi, termcode e cosa può o non può essere mappato da Vim.
James,

Risposte:


17

Sfortunatamente, non esiste un modo affidabile per mappare Ctrl-=.

A causa del modo in cui gli ctrl+keyaccordi interagiscono con il terminale e sono rappresentati internamente, le uniche mappature Ctrl che Vim è in grado di rilevare sono quelle definite nello standard ASCII. Ecco l'elenco completo di tali ctrl+keycombinazioni e il byte rappresenta ciascuna.

Ctrl-@                 0x00            NUL
Ctrl-A to Ctrl-Z       0x01 to 0x1A
Ctrl-a to Ctrl-z       0x01 to 0x1A
Ctrl-[                 0x1B            ESC
Ctrl-\                 0x1C
Ctrl-]                 0x1D
Ctrl-^                 0x1E
Ctrl-_                 0x1F
Ctrl-?                 0x7F            DEL

Tuttavia, si noti che la maggior parte di questi ha già una funzione in Vim e alcuni sono essenzialmente identici a / indistinguibili da altri tasti. ad es. CTRL-Mha lo stesso codice chiave di Enter, quindi se si mappa uno di questi si sta inevitabilmente mappando l'altro.

Fonte: Vim-FAQ

Potresti essere in grado di aggirare le restrizioni di cui sopra configurando il tuo terminale per inviare una determinata sequenza di byte per la tua mappatura, come in questo thread di overflow dello stack , ma sarà sicuramente una seccatura. Personalmente, preferirei solo scegliere una mappatura diversa.

Questo potrebbe eventualmente essere risolto, ma è improbabile, dal momento che Vim si affida al terminale in cui è in esecuzione. Tuttavia, c'è una buona possibilità che funzioni in Neovim. Non so se funzioni adesso o no.


1
Bene, collegherò le persone a questo in futuro.
Tumbler41,
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.