Autocmd ignore la cartographie?

1

Pour plus de commodité, j'ai mappé "annuler l'indentation" à MAJ + TAB dans mon fichier .vimrc:

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

Cela fonctionne bien si je l'utilise moi-même lors de l'édition, et je voulais donc utiliser ce mappage autocmdégalement:

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

Cela ne fonctionnera pas si. J'utilise maintenant <C-D>directement:

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

qui fonctionne bien et est encore plus courte, donc pas de problème.


C’est donc plus une question de curiosité, pourquoi autocmd ne peut pas utiliser ma cartographie alors qu’elle est dans le bon mode.

omnésie
la source

Réponses:

2

Dans ce cas, le autocmdn'est pas pertinent pour le problème.

Vous utilisez la variante "nore" des commandes de mappage, qui indique explicitement à Vim de ne pas déclencher d'autres mappages lorsque le premier mappage est déclenché. Supprimez la partie "nore" de votre commande map et il fera ce que vous attendiez:

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

Voir: :help nore

Heptite
la source
Merci pour la clarification. Je pensais qu’il était noresimplement interdit d’écraser ce même mappage. De toute évidence, cela a beaucoup plus de sens.
Omnesia