Vim E194 :Aucun autre nom de fichier pour remplacer « # »
Question
J'utilise le plugin ctrlp.vim qui est essentiellement un outil de recherche de fichiers.J'ai suivi les étapes d'installation mentionnées ici :
http://kien.github.io/ctrlp.vim/#installation (en utilisant git)
Mon plugin fonctionne bien et comme prévu mais au démarrage de vim, j'obtiens l'erreur suivante :
Error detected while processing FuncUndefined Auto commands for "*":
E194: No alternate file name to substitute for '#': runtime autoload/ctrlp#utils#cachedir.vim
Press ENTER or type command to continue
En supprimant set runtimepath^=~/.vim/bundle/ctrlp.vim
depuis mon vimrc, l'erreur disparaît mais évidemment même mon plugin cesse de fonctionner, ce qui n'est pas souhaité.
S'il vous plaît, aidez-moi.
La solution
Le format de cette commande est erroné :Au lieu de
runtime autoload/ctrlp#utils#cachedir.vim
ça devrait être
runtime autoload/ctrlp/utils/cachedir.vim
Le #
le séparateur est utilisé lorsque appel fonctions de chargement automatique, mais :runtime
nécessite un chemin, avec des séparateurs de chemin.Là, les identifiants spéciaux tels que #
et %
sont en vigueur, ce qui provoque l'erreur.
Pour résoudre ce problème, découvrez d'où cette mauvaise commande est émise.
:verbose autocmd FuncUndefined
est un bon début.
Autres conseils
J'ai eu la même erreur avec la version Windows de GVim 8.1 en essayant d'écrire un [Sans nom] tampon vers un nom de fichier contenant #include
.Placer un \
avant chaque #
dans le nom du fichier contourne le problème.
Je pensais que cela entrerait en conflit avec la convention Windows consistant à utiliser des barres obliques inverses pour séparer les dossiers dans les chemins de fichiers, mais ce n'est pas le cas.