2011-01-18 3 views

ответ

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")))) 
+0

Спасибо, я в конечном итоге хочет запустить оболочку вместо этого в другом случае, но это было легко изменить из вашего примера. – paarshad

4

get-buffer-create («Вернуть буфер, указанный BUFFER-OR-NAME, создавая новый, если необходимо».) Будет обрабатывать создание буфера, если он не существует. Затем используйте switch-to-buffer («Сделать BUFFER-OR-NAME текущим и отобразить его в выбранном окне.»), Чтобы переключиться на буфер.

Так что-то, как это будет делать трюк:

(switch-to-buffer (get-buffer-create "console"))