Новичок: ошибка сочетания клавиш в Elisp - PullRequest
3 голосов
/ 23 марта 2010

Я пытаюсь сделать простую привязку клавиш к функции "na". Когда я выполняю (na), он вставляет «å» в текущий буфер, что предполагается, но когда я пытаюсь связать клавиши, как описано в первой строке, я получаю ошибку: «Неверный аргумент: commandp, na». Я не уверен, имеет ли это значение, но я также поместил команду (local-set-key) в конец кода, но она выдает ту же ошибку.

Теперь я уверен, что есть простое решение для этого. Я просто не вижу этого = /

(local-set-key (kbd "C-c C-t") 'na)

(defun na ()
       "Liten å"
       (setq varlol "å")
       (insert varlol))

Ответы [ 2 ]

7 голосов
/ 23 марта 2010

Вам не хватает звонка на interactive:

(defun na ()
  "Liten å"
  (interactive)
  (setq varlol "å")
  (insert varlol))

Из документации к нему:

Эта специальная форма заявляет, что Функция это команда, и что она может поэтому вызываться в интерактивном режиме (через М-х или введя ключ последовательность связана с ним). Аргумент Аргумент-дескриптор объявляет, как вычислить аргументы команды, когда Команда вызывается в интерактивном режиме.

2 голосов
/ 23 марта 2010

«Интерактивный» отсутствует

(defun na ()
  (interactive)
       "Liten å"
       (setq varlol "å")
       (insert varlol))
...