Autocmd ignora o mapeamento?

1

Por conveniência, eu mapeei "unindenting" para SHIFT + TAB no meu .vimrc:

nnoremap <S-Tab> <<
inoremap <S-Tab> <C-D>

Isso funciona bem se eu mesmo usá-lo durante a edição e, por isso, também quis usar esse mapeamento para autocmd :

autocmd FileType html inoremap ;p <p><Enter><Tab>INDENTED<Enter><S-Tab></p>

Isso não vai funcionar embora. Eu agora uso <C-D> diretamente:

autocmd FileType html inoremap ;p <p><Enter><Tab>INDENTED<Enter><C-D></p>

que funciona bem e é ainda mais curto, por isso não há problema.

Isso é mais uma questão por curiosidade porque o autocmd não pode usar meu mapeamento, embora esteja no modo correto.

    
por omnesia 26.07.2017 / 11:46

1 resposta

2

Nesse caso, o autocmd não é relevante para o problema.

Você está usando a variante "nore" dos comandos map, que explicitamente diz ao Vim para não acionar outros mapeamentos quando o primeiro mapeamento for acionado. Remova a parte "nore" do seu comando map e ele fará o que você esperava:

imap ;p <p><Enter><Tab>INDENTED<Enter><S-Tab></p>

Veja: :help nore

    
por 26.07.2017 / 20:14

Tags