#emacs #emacs23 #lua-mode
#emacs #emacs23 #lua-режим
Вопрос:
Я пытаюсь установить lua-mode в emacs для Windows, но, похоже, ничего не работает. Я установил переменную своего ДОМАШНЕГО окружения. Я добавил init.el
и lua-mode.el
в HOME.emacs.d
каталог. Затем я добавил следующий код в init.el
:
(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
(add-to-list 'auto-mode-alist '("\.lua$" . lua-mode))
(add-to-list 'interpreter-mode-alist '("lua" . lua-mode))
(add-hook 'lua-mode-hook 'turn-on-font-lock)
Ничего не работает, когда я запускаю emacs и загружаю файл .lua. Для основного режима всегда установлено значение fundamental, и других опций для переключения нет. Что я могу сделать, чтобы это заработало?
Комментарии:
1.
M-x lua-mode
работает ли? В чем ценностьload-path
?
Ответ №1:
Возможно, что ваш init.el
никогда не будет прочитан, потому что у вас также есть .emacs
файл (или .emacs.el
) в вашем каталоге $ HOME. Вы можете выбрать один из этих трех вариантов для файла инициализации Emacs, но будет прочитан только один из них. Традиционно это так .emacs
, но в некоторых операционных системах возникают проблемы с синтаксисом этого имени файла.
Кроме того, убедитесь, что вы разместили init.el
в своем реальном домашнем каталоге, а не в каталоге с названием «HOME» или что-то в этом роде.
Смотрите здесь для получения дополнительной информации о файлах инициализации Emacs и здесь для получения дополнительной информации о домашних каталогах.
Если вы не заинтересованы в использовании init.el
варианта, вот инструкция, которая должна заставить lua-режим работать для вас с помощью .emacs
:
- Запустите новый Emacs
- Введите
C-x C-f ~/.emacs <ENTER>
(C-x означает нажатие CTRL, удерживайте его, нажмите x, отпустите — то же самое для C-f) -
Вставьте следующие строки:
(add-to-list 'load-path "/path/to/lua-mode-dir") (autoload 'lua-mode "lua-mode" "Lua editing mode." t) (add-to-list 'auto-mode-alist '("\.lua$" . lua-mode)) (add-to-list 'interpreter-mode-alist '("lua" . lua-mode)) (add-hook 'lua-mode-hook 'turn-on-font-lock)
-
Введите
C-x C-s
, чтобы сохранить буфер в файл - Введите
C-x C-c
, чтобы закрыть Emacs
Обратите внимание, что на шаге 3 вы должны указать «/path/to/lua-mode-dir» фактическим путем к каталогу, в котором вы сохранили файл lua-mode.el на вашем жестком диске.
Комментарии:
1. @cschol: Это всего лишь один кусочек мозаики. Если бы причиной этого был отсутствующий путь загрузки, операционная система получила бы сообщение об ошибке при открытии файла .lua. Но поскольку он не получил сообщение об ошибке, похоже, что init.el на самом деле никогда не загружается.
Ответ №2:
может быть, вам нужно что-то вроде (require 'lua-mode)
или что-то в этом роде? Также убедитесь, что файл lua-mode находится в каталоге в вашей load-path
переменной. Что-то вроде этого, прежде чем что-либо еще:
(добавить в список ‘путь загрузки «/home/dervin/.emacs.d/site-lisp/»)
или где угодно, и тогда require
—
Комментарии:
1. Похоже, что emacs даже не видит мой
init.el
файл. Несмотря на то, что я установил HOME и все такое. Я попытался добавить к нему эту строку кода, указывающую на нужную папку, но это не сработало. Я не знаю, что теперь делать.2. это Windows? Если это так, запустите Emacs, напишите
M-x pwd
(это даст вам домашний каталог), сохраните ваш init.el там (или, еще лучше, ваш .emacs). Еще одна вещь, которую вы можете сделать: запустите Emacs, загрузите init.el (C-x C-f
), а затем напишитеM-x eval-buffer
и посмотрите, что произойдет. Третья вещь, которую вы можете сделать, это запустить emacs с консоли и передать-u=<path to init.el>
(или--user=<path to init.el>
) и посмотреть, что произойдет.
Ответ №3:
Строки выглядят нормально. Это может зависеть от ряда факторов:
init.el
Файл не загружается при запуске.На первый взгляд, это нестандартное название, когда дело доходит до Emacs.Emacs пытается загрузить файлы~/.emacs
,~/emacs.el
и~/.emacs.d/init.el
по порядку и загружает первый найденный. Чтобы убедиться, что ваш файл загружен, вы могли бы добавить(message "Loading my init.el")
в него и проверить*Messages*
буфер.- Каталог, в котором вы сохранили файл
lua-mode.el
, отсутствует в пути загрузки. На самом деле,~/.emacs.d
каталог не является частью стандартного пути загрузки.
Комментарии:
1. Это неправда, что
init.el
это нестандартное имя. Использование.emacs.d
каталога, содержащегоinit.el
, — это современный способ сохранить все конфигурационные файлы emacs в одном каталоге.2. О, я этого не знал. Я соответствующим образом обновил ответ. Спасибо!
3. Следуя этой схеме, вы можете проверить всю конфигурацию emacs в системе VC, вот так: github.com/purcell/emacs.d