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

È stato utile?

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
  : Imap foo

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'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top