在 emacs 中激活 tmux shell

Activate tmux within a emacs shell

通过 M-x shell
调用 'shell' 并计划开始 tmux 会话

它报告错误

$ tmux 
open terminal failed: terminal does not support clear

有什么问题?

如果调用`ansi-term',则复制和粘贴操作无效。

因此,shell 在例程中比 ansi-term 表现更好。

如何在 shell

中激活 tmux

tmux 需要一个真正的终端,而 shell 不提供(正如您得到的错误暗示的那样)。所以你需要使用 termtmux

或者您可以使用 Emacs 的内置功能来获得 tmux 的功能。例如。 C-x 2C-x 3 会将框架拆分为 windows,因此您可以在框架中包含多个终端(Emacs 框架是大多数应用程序所称的 window)。启动 emacs 服务器和 emacsclient 以建立可以连接的会话并在关闭框架后保持 运行ning。

复制 (M-w) 和粘贴 (S-<insert>) 应该默认工作。如果你想玩绑定,键映射被称为 term-raw-map,命令是 kill-ring-saveterm-paste

还可以了解 term-line-mode (C-c C-j) 和 term-char-mode (C-c C-k) 之间的区别。简而言之,行模式的行为更像 shell,而字符模式的行为更像一个真正的终端,大多数 Emacs 键绑定不可用。我个人几乎总是将 term 缓冲区保持在字符模式,并向 term-raw-map 添加一些键绑定,这样我就可以 运行 某些 Emacs 命令。