Как вызвать функцию в программе elisp и следовать интерактивному пути?

Если я вызову ispell-check-version в интерактивном режиме (через M-x), он получит такой ответ:

@(#) Международная версия Ispell 3.3.02 12 июня 2005 г., ispell.el 3.6 — 7 января 2003 г.

Отлично. Теперь предположим, что я хочу вызвать его из программы. Я ожидаю получить тот же результат. Но функция ведет себя иначе, когда не вызывается интерактивно. Его документация говорит об этом, и это действительно так. Давайте попробуем в буфере *scratch* (оценивается с помощью C-u C-x C-e):

(ispell-check-version)

возвращает меня: "/opt/local/lib" !! Не ожидалось .. Как я могу заставить функцию вести себя и возвращать тот же результат теперь, когда я называю ее «программно», как когда я вызывал ее «интерактивно», пожалуйста?


person yves Baumes    schedule 13.11.2012    source источник


Ответы (1)


call-interactively это то, что вы ищете.

(call-interactively 'ispell-check-version)
person jtahlborn    schedule 13.11.2012