La commande automatique BufRead ne fonctionne pas dans vim lors de l'enregistrement d'un tampon vide


2

J'essaie d'utiliser autocmdpour obtenir des mappages spécifiques à un nom de fichier. J'ai suivi des instructions en ligne et écris le texte suivant dans mon vimrc:

autocmd BufRead,BufNewFile special.txt (some mappings here)

Cela fonctionne bien lorsque je saisis un fichier ou crée un nouveau tampon avec le nom special.txt, mais pas lorsque je crée un tampon vide (par exemple, lors du démarrage de vim sans argument) et que je le sauvegarde sous un nom special.txt.

Même un simple echomsgne fonctionnera pas:

autocmd BufRead,BufNewFile special.txt echomsg test

et il n'y a pas de texte testdans l'historique des messages.

Mais dans la documentation de BufReadje vois

Également déclenché pour le groupe filetypedetect lors de l'exécution de ": filetype detect" et lors de l'écriture d'un tampon non nommé de manière à ce que le tampon obtienne un nom.

Lorsque je sauvegarde un tampon vide avec le nom special.txt, le tampon obtient un nom et BufReaddoit être déclenché. Mais en fait ce n'est pas le cas. Y a-t-il quelque chose qui me manque ou dois-je simplement utiliser un autre événement autocommand?

Et au cas où cela serait utile, j'utilise la version en ligne de commande de vim dans le vim-gtkpaquet du référentiel Ubuntu.

Réponses:


1

Vous devez interpréter le texte d'aide comme ceci:

Également déclenché [uniquement] pour le groupe filetypedetect lorsque (en exécutant ": filetype detect" [ou] lors de l'écriture d'un tampon non nommé de manière à ce que le tampon obtienne un nom).

Donc, celui-ci fonctionne:

:autocmd filetypedetect BufRead,BufNewFile special.txt echomsg "ftdetect test"

Il semble que cela filetypedetectn’est utilisé que pour les commandes de détection de type de fichier, et je n’ajoute pas de nouveau type de fichier. Devrais-je mettre ces mappages dans un filetypedetectgroupe ou créer un nouveau type de fichier special.txtet les écrire en tant que plug-ins de type de fichier ?
infmagic2047

S'il ne s'agit que de quelques ajustements et mappages, je ne créerais pas de nouveau type de fichier pour cela; Utilisez votre jugement. Pour plus de clarté, je mettrais ceux-ci dans ~/.vim/filetype.vim, pas ~/.vimrc.
Ingo Karkat
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.