Una solución simple pero eficaz sería definir un autocontrol que coincida con nombres de archivo potencialmente mal escritos, que emite una advertencia y finaliza el guardado.
:autocmd BufWritePre [:;]* throw 'Forbidden file name: ' . expand('<afile>')
Tenga en cuenta que el comando :throw
es necesario hacer Vim deja de escribir los contenido de un búfer.
Con el fin de evitar que E605
de error debido a una excepción no capturada, uno puede emitir un error al usar la carrera :echoerr
comando en el bloque try
. (:echoerr
eleva su mensaje de error como una excepción cuando se llama desde el interior una construcción try
. Ver :help :echoerr
.)
:autocmd BufWritePre [:;]*
\ try | echoerr 'Forbidden file name: ' . expand('<afile>') | endtry
Si alguna vez es necesario guardar un archivo con un nombre que coincida con el patrón utilizado en lo anterior auto-comando, uno puede anteponer un comando de escritura con :noautocmd
o establecer la opción eventignore
en consecuencia (ver :help :noautocmd
y :help eventignore
para más detalles), por ejemplo
:noa w :ok.txt
Supongo que podría usar un autocomando con 'BufWritePre' para advertirle y no escribir archivos comenzando con'; * '. Pero ahora tengo sueño y lo intentaré cada vez que me despierte ... si aún no me lo han respondido. – abcd