tmux
нужен реальный терминал, а shell
этого не обеспечивает (как следует из полученной ошибки). Так что вам нужно использовать term
с tmux
.
Или вы можете использовать встроенную функциональность Emacs, чтобы иметь функции tmux
. Например. C-x 2
и C-x 3
разделят фрейм на окна, чтобы вы могли иметь несколько терминалов в фрейме (фрейм Emacs - это то, что большинство приложений будет называть окном). Запустите сервер emacs и emacsclient
, чтобы иметь сеансы, к которым вы можете подключиться и продолжать работу после закрытия фрейма.
Копирование (M-w
) и вставка (S-<insert>
) должны работать по умолчанию. Если вы хотите поиграть с привязками, карта ключей называется term-raw-map
, а команды - kill-ring-save
и term-paste
.
Также узнайте разницу между term-line-mode
(C-c C-j
) и term-char-mode
(C-c C-k
). Вкратце, линейный режим ведет себя больше как shell
, а режим char ведет себя больше как реальный терминал, при этом большинство комбинаций клавиш Emacs недоступны. Лично я почти всегда сохраняю term
буферы в режиме char и добавляю несколько комбинаций клавиш в term-raw-map
, чтобы я мог запускать определенные команды Emacs.