Ответ 1
Простым, но эффективным решением было бы определить соответствие автокоманд потенциально ошибочные имена файлов, которые вызывают предупреждение и прекращают сохранение.
:autocmd BufWritePre [:;]* throw 'Forbidden file name: ' . expand('<afile>')
Обратите внимание, что команда :throw
необходима, чтобы Vim прекратил писать
содержимое буфера.
Чтобы избежать ошибки E605
из-за неперехваченного исключения, один
может выдавать ошибку с помощью команды :echoerr
в блоке try
.
(:echoerr
вызывает сообщение об ошибке как исключение при вызове изнутри
a try
. См. :help :echoerr
.)
:autocmd BufWritePre [:;]*
\ try | echoerr 'Forbidden file name: ' . expand('<afile>') | endtry
Если вам когда-либо понадобится сохранить файл с именем, соответствующим шаблону, используемому в
указанная выше автоматическая команда, можно добавить команду записи с помощью :noautocmd
или
установите опцию eventignore
(см. :help :noautocmd
и :help
eventignore
для более подробной информации), например
:noa w :ok.txt