Вы используете версию Emacs, у которой нет версии функции "named-interactively-p", которая принимает 1 аргумент (более ранние версии функции не принимали аргумент).Вы можете обойти это, поместив этот обходной путь (размещенный здесь: http://paste.lisp.org/display/115598/raw) в вашем файле инициализации Emacs:
(condition-case nil (called-interactively-p 'interactive)
(error
; Save reference to called-interactively-p in
; inglorion-system-called-interactively-p
(fset 'inglorion-system-called-interactively-p
(symbol-function 'called-interactively-p))
; Define called-interactively-p so that it discards
; its arguments and calls inglorion-system-called-interactively-p
(fset 'called-interactively-p
(lambda (&rest args)
(inglorion-system-called-interactively-p)))))
Однако, когда я сделал это и попытался протестировать с Emacs 22, я столкнулся сдругие ошибки также из-за отсутствия определенных функций, поэтому вам, возможно, придется обновить свою версию Emacs, если вы хотите использовать lua-mode.
В Emacs 23 и 24 появляется сообщение "lua-mode.el"работать (я не программист lua, поэтому я не мог проверить это должным образом) с существующими файлами lua, но не работает, когда вы пытаетесь создать новый файл lua. Это фактически ошибка в коде "lua-mode.el", которыйпроисходит, когда вы пытаетесь открыть новый файл lua (это не происходит, если вы пытаетесь открыть существующий файл lua). Проблема в том, что вызов «remove-text-properties» в строке # 1218 (в «lua-Функция unmark-multiline-literals ") вызывает функцию" remove-text-properties "с начальным значением" 1 "и конечным значением" 0 "(это" 0 ", потому что размер буфера равен" 0 "дляновый файл. Вы можете исправить это, изменив line # 1218 с:
(remove-text-properties (or begin 1) (or end (buffer-size)) '(syntax-table ()))
до:
(remove-text-properties (or begin 1)
(or end
(if (> (buffer-size) 0)
(buffer-size)
(or begin 1)))
'(syntax-table ()))
Вы должны сообщить разработчику lua-mode.el об ошибке и, возможно, также запросить поддержку более ранних версий Emacs.версии.