Отличный ответ на вопрос How do I define an Emacs List function to spawn a shell buffer with a particular command executed in the shell странно не работает в сеансе «экрана» Gnu. В контексте команды экрана, вместо команды я говорю это выполнить,команда в буфере оболочки в emacs на экране gnu
echo 'test1'\n
, Emacs называется рекурсивно! Будущий буфер оболочки содержит знакомый «emacs: Terminal type« dumb »недостаточно мощный для запуска Emacs».
Как это сделать? Вот что я сделал:
В командной строке:
~ [email protected]{1}% screen -s run-emacs2
Вот сценарий оболочки вводного emacs2:
#!/bin/bash
EMACS=/usr/bin/emacs23-x
export NO_AT_BRIDGE=1 ## suppress annoying gtk>2 warning
exec "$EMACS" -nw --load init.el.test -f spawn-shell
ПРИМЕЧАНИЕ: Если в командной строке я говорю:
~ [email protected]{1}% run-emacs2
... все работает нормально. Проблема заключается в некотором взаимодействии с экраном Gnu.
Вот init.el.test (почти дословно из ответа, связанного выше):
(defun spawn-shell()
"Invoke shell test"
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "gzo")))
(shell (current-buffer))
(process-send-string nil "echo 'test1'\n"))