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.

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.