Хороший способ (я думаю) начать писать функции elisp - записать макросы клавиатуры, а затем проанализировать их, используя edit-kbd-macro
Например, если вы начнете запись макроса клавиатуры с помощью f3 , затем выполните все необходимые действия в интерактивном режиме и завершите макрос с помощью f4 , вы увидите базовый emacs команды lisp с использованием Mx edit-kbd-macro
f4 (это последнее f4 - это привязка клавиш, которую вы использовали для выполнения макроса клавиатуры)
<<shell>> ;; shell
<<toggle-truncate-lines>> ;; toggle-truncate-lines
mysql ;; self-insert-command * 5
RET ;; comint-send-input
Теперь вы можете написать скрипт, используя эти функции, просматривая документацию (например, C-h f toggle-truncate-lines
), чтобы увидеть, следует ли вам вызывать их со специальными аргументами в неинтерактивном режиме.
Вам также следует заменить self-insert-command
звонками на insert
.
Это должно дать вам что-то вроде следующего скрипта, который вы можете вызвать с помощью emacs --load myscript.el
(shell)
(toggle-truncate-lines 1)
(insert "mysql")
(comint-send-input)
Конечно, в первый раз это может работать не так, как ожидалось, поэтому вам, возможно, придется набрать (setq debug-on-error t)
, чтобы получить отладочную информацию.