Come catturare shift-tab in vim
Domanda
voglio usare shift-tab
per il completamento automatico e spostando blocchi di codice visivo. Sono stato riferisco a Make_Shift-Tab_work . Tale nesso parla di mappatura ^[[Z
a shift-tab
. Ma non ho ricevuto ^[[Z
quando premo shift-tab
. Ho appena ottenere un tab
normale in quel caso.
Si parla quindi di usare xmodmap -pke | grep 'Tab'
per mappare tasti Tab. Secondo che l'uscita deve essere
keycode 23 = Tab
or
keycode 23 = Tab ISO_Left_Tab
Tuttavia ottengo
keycode 22 = Tab KP_Tab
se io uso xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'
e dopo che xmodmap -pke | grep 'Tab'
, ho ancora
keycode 22 = Tab KP_Tab
Questa xmodmap -e 'keycode 22 = Tab ISO_Left_Tab'
esecuzione mezzo non ha alcun effetto.
Alla fine il link menziona usando xev
per vedere cosa recieves X
quando si preme shift-tab
. Ma io non sono xev
sul mio sistema.
C'è un altro modo posso catturare shift-tab in vim
Soluzione
Il legame parla specificamente di ottenere ^[[Z
quando si preme Ctrl + v Maiusc + Tab in modalità di inserimento . Se si lascia fuori il Ctrl + v , quindi Vim si comporta proprio come se si preme Tab .
Il modo più semplice per rendere Vim riconoscere <S-Tab>
, è quello di impostare direttamente l'opzione t_kB
per la sequenza di escape vostro terminale invia, invece di fare scherzi con le mappe.
Come test rapido, provate questo in un Vim in esecuzione:
: set t_kb = Ctrl + v Esc [Z
: Imapfoo
Ora, quando si preme Maiusc + Modalità Tab in inserimento, deve essere inserito foo
. Se questo ha funzionato, è possibile rendere il cambiamento permanente aggiungendo quanto segue al vostro vimrc.
exe 'set t_kB=' . nr2char(27) . '[Z'