Установка плагинов Emacs на Windows
Я уже просмотрел другие темы, но так и не смог найти решение. Я пытаюсь установить плагин "nxhtml" для Emacs в Windows 7. Я уже установил переменную окружения "HOME" как "C:\". Итак, моя папка.emacs.d находится там, и я поместил туда nxhtml и добавил следующую строку в мой файл "_emacs.d", как говорится в файле readme:
(загрузить "C:\.emacs.d\nxhtml\autostart.el")
Но это не загружается.
Я также попытался поместить: (add-to-list 'путь загрузки "C: \. Emacs.d \ nxhtml")
(загрузить "autostart.el")
Но безрезультатно... может кто-нибудь пролить свет здесь? Тпй.
2 ответа
Ряд пунктов здесь:
Во-первых, _emacs.d не является именем файла по умолчанию для вашего файла инициализации, т.е. emacs не будет загружать его автоматически. Вместо этого попробуйте ~/.emacs.d/init.el или ~ /.emacs.
Во-вторых, в Windows 7 есть функция, которая предотвращает запись программ в определенные системные каталоги, но для обратной совместимости для многих старых программ, которые делают это, вместо того, чтобы вызывать сбои, она молча перенаправляет запись в другое место, в специальный каталог приложения., C:\ является одним из этих каталогов, поэтому настройка вашего HOME на указание там вызывает проблемы.
В-третьих, посмотрите другой ответ о том, что обратная косая черта является escape-символом в строках Lisp.
\
является особенным в синтаксисе чтения (двойных кавычек) для строк, так как определенные символы приобретают новое значение, если им предшествует обратный слеш (например, \n
это новая строка, \t
это вкладка, и \"
является символом двойной кавычки). Если следующий символ не имеет никакого специального значения в сочетании с обратной косой чертой, этот символ используется дословно, а обратная косая черта игнорируется.
"C:\.emacs.d\nxhtml\autostart.el"
на самом деле строка:
C:.emacs.d
xhtml^Gutostart.el
Чтобы включить \
в строке нужно написать \\
Однако, хотя Emacs и сейчас понимает обратную косую черту, он совместим на всех платформах, что позволяет /
в качестве разделителя каталогов1; так что просто сделай это вместо этого.
1 и устарел directory-sep-char
Переменная была полностью удалена.