Я не использую слизь, но, если предположить, что он использует режим comint, я думаю, что следующее может помочь:
(defun my-slime-test-run ()
(interactive)
(delete-other-windows)
(split-window-below)
(with-selected-window (next-window)
(switch-to-buffer "slime-repl")
(goto-char (point-max))
(insert "(test-run)")
(comint-send-input)))
(global-set-key (kbd "<f3>") 'my-slime-test-run)
Вероятно, есть лучший способ сделать это, но, надеюсь, это даст вам некоторое представление о том, как вы можете писать функции elisp для выполнения задач в редакторе (и обратите внимание, что функция читается очень похоже на набор инструкций редактора - вы может многое сделать, просто преобразовав нажатия клавиш, которые вы бы использовали, в эквивалентный код - или даже не написав код вообще, а просто записав и сохранив макросы клавиатуры).
Используйте C-h f name-of-the-function
RET, чтобы получить документацию по любому из вызовов функции / макроса в этой функции.
Для привязки клавиш я использовал Ch k F3, чтобы проверить, как Emacs ссылается на этот ключ, а затем использовал эту строку в качестве аргумента для kbd
( и обратите внимание, как вы можете использовать эту последовательность, чтобы найти имя функции, связанной с любой заданной ключевой последовательностью, которую вы затем можете использовать в коде, если хотите).
Многие вещи гораздо менее очевидны, если вы их еще не знаете, но этого и следовало ожидать с такой большой базой кода (и датируемой до этого).
Замечательно то, что если вы не знаете, что ищете, вы всегда можете искать имена функций, соответствующие шаблонам, с помощью Cu Ch a kbd> (и аналогично для переменных, значений, библиотек и документации; подробнее об этой возможности см. M-: (info "(emacs) Apropos")
RET). Плюс информационные руководства (вместе с указателями - нажмите I
или i
в любом конкретном руководстве или используйте команду info-apropos
для одновременного поиска всех информационных руководств).
Поистине, одна из лучших вещей, которые вы можете сделать, - это научиться использовать самодокументирующуюся природу Emacs для поиска ответов на то, чего вы еще не знаете.
person
phils
schedule
20.04.2012
C-x 2
не является режимом; он просто вызывает функциюsplit-window-below
. По общему признанию, это различие можно считать несколько произвольным - функции режима имеют те же возможности, что и любые другие функции, а глобальные второстепенные режимы, такие какmenu-bar-mode
, влияют на кадры, а не на буферы, - но режимы в основном обеспечивают поведение отдельных буферы, и по соглашению они всегда имеют имя функции, заканчивающееся на-mode
. Поскольку режимы являются такой важной частью Emacs, вы избежите небольшой путаницы, если не будете ссылаться на другие функции, используя эту терминологию. - person phils   schedule 20.04.2012C-h t
. После этого вы можете найти здесь полезный поиск в вопросах и ответах, содержащих этот термин: stackoverflow.com/search?q= [ emacs] + руководство - person phils   schedule 20.04.2012C-h i
, чтобы перейти к программе чтения информации; внимательно обратите внимание на привязки клавиш, перечисленные в верхней части страницы с основным содержанием, и помните, чтоd
всегда возвращает вас туда. - person phils   schedule 20.04.2012