Vim E194:Los suplentes No nombre de archivo a sustituir por '#'
Pregunta
Estoy usando ctrlp.vim plugin, que es esencialmente un buscador de archivos.He seguido los pasos de instalación como se menciona aquí:
http://kien.github.io/ctrlp.vim/#installation (usando git)
Mi plugin está funcionando bien y como se esperaba, pero en el que comienza vim I obtiene el siguiente error:
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 la eliminación de set runtimepath^=~/.vim/bundle/ctrlp.vim
desde mi vimrc el error desaparece, pero, obviamente, incluso mi plugin deja de trabajar que no se desea.
Por favor, ayudar.
Solución
El formato del comando es incorrecta:En lugar de
runtime autoload/ctrlp#utils#cachedir.vim
debe ser
runtime autoload/ctrlp/utils/cachedir.vim
El #
separador se utiliza cuando llamar autoload funciones, pero :runtime
requiere de un camino, con separadores de rutas.Allí, los identificadores especiales, tales como #
y %
son, en efecto, y que causa el error.
Para arreglar eso, saber de dónde esta mal el comando es emitido.
:verbose autocmd FuncUndefined
es un buen comienzo.
Otros consejos
Yo tenía el mismo error con la versión de Windows de GVim 8.1 cuando se trata de escribir un [Sin Nombre] búfer para un nombre de archivo que contiene #include
.La colocación de un \
antes de cada #
en el nombre de archivo de las obras de este problema.
Pensé que estaría en conflicto con la convención de Windows de la utilización de barras para separar las carpetas de las rutas de archivo, pero no lo hizo.