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