Fazendo o trabalho de Shift-Tab no Vim ao executar dentro do ConEmu

0

Eu tenho esses mapeamentos em meus arquivos de inicialização do Vim:

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

a intenção é ser capaz de desabilitar com SHIFT - TAB . Isso funciona bem em GVim e VsVim, mas não está funcionando no Vim dentro do ConEmu.

No entanto, a tabulação (através de nomes de arquivos, por exemplo) para frente com TAB e para trás com SHIFT - TAB funciona bem no comando linha no ConEmu fora do Vim, então o ConEmu deve estar fazendo algo significativo com a sequência SHIFT - TAB , e eu não prefiro quebrar o comportamento da linha de comando se possível (embora se eu tivesse que escolher, eu escolheria a funcionalidade do Vim).

Estou tendo problemas para determinar o que o Vim acha que está vendo para essa sequência-chave. Se eu fizer CTRL - v SHIFT - TAB , o resultado será Î . Quando eu faço char2nr() , eu recebo 206 e, de fato, esse parece ser o caractere Unicode 206. Esse resultado de 206 é confirmado por :echo getchar() e a digitação da sequência. No entanto, fazer map Î <S-Tab> não funciona.

Como posso fazer meus mapeamentos funcionarem?

    
por Kazark 16.12.2014 / 18:23

2 respostas

1

A versão 141216 corrige seu problema.

BTW, sua solução alternativa não é mais necessária, mas usar várias funções keys GuiMacro não é a melhor, use melhor o tipo keys("^[","[","Z") ou apenas print("\e[Z") .

    
por 16.12.2014 / 23:46
0

Eu encontrei uma solução alternativa. Infelizmente, a capacidade de reverter os nomes de arquivos no console, inserindo ^[[Z , por isso, ainda estou procurando uma resposta melhor do que isso. No entanto, ele faz com que o SHIFT - TAB funcione no Vim sem modificação adicional na configuração do Vim. Eu usei o recurso macro do ConEmu para mapear SHIFT - TAB no ConEmu para a seqüência de escape do Vim ^[[Z (veja :set t_kB ), que ele já interpreta como <S-Tab> por padrão. A macro é keys("^["); keys("["); keys("Z") , conforme mostrado abaixo.

    
por 16.12.2014 / 19:51