Я пытаюсь заставить функцию emacs 'delete-file
удалять файлы с восклицательными знаками в именах.
Конкретный вариант использования заключается в том, что я настроил emacs для сохранения всех файлов резервных копий в одном каталоге и удаления старых файлов резервных копий. Однако, когда все файлы резервных копий помещены в один каталог, разделитель каталогов /
заменяется на !
.
Когда delete-file вызывается для файла с восклицательным знаком в имени, он возвращает ноль и файл не удаляется. Это не сигнализирует ни о какой ошибке. Обычно delete-file возвращает ноль. В любом случае, система резервного копирования emacs использует delete-file для удаления, и я бы не стал переопределять всю функцию, просто чтобы изменить одну строку.
Я пытался поставить обратную косую черту в восклицательных знаках и заключить в кавычки строку имени файла, но ни одна из них не сработала. Я обнаружил, что что-то в моей конфигурации вызывает это, но я еще не понял, что. Я отследил источник проблемы до моей пользовательской функции system-move-file-to-trash
, которую теперь мне нужно отлаживать.
Итак, как я могу заставить это работать?
Версия Emacs:
GNU Emacs 23.1.50.1
Emacs-снимок:
Установлено: 1: 20090730-1 ~ jaunty1