Я хотел бы создать функцию, которая создает буфер с именем «console», если он не существует и выполняет несколько команд. Если буфер уже существует, я хочу, чтобы он только переключился на него.Функция создания/переключения буфера Emacs
1
A
ответ
2
Попробуйте это, очевидно, заменив (insert "something\n")
с командами, которые вы хотите запустить:
(defun jump-to-console()
"go to console buffer if it exists, otherwise create"
(interactive)
(let ((buffer-name "console"))
(if (get-buffer buffer-name)
(pop-to-buffer buffer-name)
(pop-to-buffer (get-buffer-create buffer-name))
(insert "something\n"))))
4
get-buffer-create
(«Вернуть буфер, указанный BUFFER-OR-NAME, создавая новый, если необходимо».) Будет обрабатывать создание буфера, если он не существует. Затем используйте switch-to-buffer
(«Сделать BUFFER-OR-NAME текущим и отобразить его в выбранном окне.»), Чтобы переключиться на буфер.
Так что-то, как это будет делать трюк:
(switch-to-buffer (get-buffer-create "console"))
Спасибо, я в конечном итоге хочет запустить оболочку вместо этого в другом случае, но это было легко изменить из вашего примера. – paarshad