Far funzionare Shift-Tab in Vim quando si esegue all'interno di ConEmu


0

Ho questi mapping nei miei file di inizializzazione per Vim:

nnoremap <S-Tab> <LT><LT>
vnoremap <S-Tab> <LT>gv

l'intenzione è quella di essere in grado di dissentire con SHIFT- TAB. Funziona bene in GVim e VsVim, ma non funziona in Vim in esecuzione all'interno di ConEmu.

Tuttavia, la tabulazione (tramite i nomi dei file, ad esempio) avanti TABe indietro con SHIFT- TABfunziona benissimo sulla riga di comando in ConEmu al di fuori di Vim, quindi ConEmu deve fare qualcosa di significativo con la sequenza SHIFT- TABe non preferisco non interrompere il comportamento da riga di comando, se possibile (anche se, se dovessi scegliere, sceglierei la funzionalità Vim).

Sto riscontrando problemi nel determinare ciò che Vim pensa stia vedendo per questa sequenza di tasti. Se lo faccio CTRL- v SHIFT- TAB, il risultato è Î. Quando lo faccio char2nr(), ottengo 206, e in effetti, questo sembra essere il carattere Unicode 206. Questo risultato di 206 è confermato :echo getchar()e digitando la sequenza. Tuttavia, fare map Î <S-Tab>non funziona.

Come posso far funzionare i miei mapping?

Risposte:


1

La versione 141216 risolve il problema.

A proposito, la soluzione alternativa non è più necessaria, ma l'utilizzo di diverse keysfunzioni GuiMacro non è ottimale, utilizzare meglio keys("^[","[","Z")o semplicemente print("\e[Z").


0

Ho trovato una soluzione alternativa. Sfortunatamente, interrompe la possibilità di scorrere indietro i nomi dei file sulla console, inserendoli ^[[Zinvece, quindi sto ancora cercando una risposta migliore di questa. Tuttavia, funziona SHIFT- TABfunziona in Vim senza ulteriori modifiche alla configurazione di Vim. Ho usato la funzione macro di ConEmu per mappare SHIFT- TABin ConEmu alla sequenza di escape Vim ^[[Z(vedi :set t_kB), che già interpreta come <S-Tab>impostazione predefinita. La macro è keys("^["); keys("["); keys("Z"), come mostrato di seguito.

mappatura della macro nella finestra delle impostazioni di ConEmu

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.