Evita guardar archivos con ciertos nombres en Vim
autocmd (1)
Una solución simple pero efectiva sería definir un comando automático que coincida con nombres de archivos potencialmente mal escritos, que emita una advertencia y finalice el guardado.
:autocmd BufWritePre [:;]* throw ''Forbidden file name: '' . expand(''<afile>'')
Tenga en cuenta que el comando :throw
es necesario para que Vim deje de escribir el contenido de un búfer.
Para evitar obtener el error E605
debido a una excepción no E605
, se puede emitir un error utilizando el comando :echoerr
ejecuta en el bloque try
. ( :echoerr
su mensaje de error como una excepción cuando se llama desde dentro de una construcción try
. Vea :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 el comando automático anterior, se puede anteponer un comando de escritura con :noautocmd
o configurar la opción eventignore
consecuencia (consulte :help :noautocmd
y :help eventignore
para obtener más información) detalles), por ejemplo
:noa w :ok.txt
Escribo muy rápido y me doy cuenta de que a veces guardo un archivo accidentalmente con el nombre de ;
o :
( :wq
y algunas veces se introduce un error tipográfico).
¿Hay alguna forma de escribir una macro que rechace guardar archivos que coincidan con ciertos nombres?