O Autocmd ignora o mapeamento?


1

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

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

Isso funciona bem se eu o usar durante a edição e, por isso, também queria usar esse mapeamento autocmd:

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

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

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

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


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

Respostas:


2

Nesse caso, o autocmdnão é relevante para o problema.

Você está usando a variante "nore" dos comandos de mapa, que informa explicitamente ao Vim para não acionar outros mapeamentos quando o primeiro mapeamento é 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>

Vejo: :help nore


obrigado pelo esclarecimento. Eu tinha em mente que noreapenas proíbe a substituição desse mesmo mapeamento. Obviamente, faz muito mais sentido do que realmente é.
Omnésia
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.