让Emacs ansi-term和Zsh发挥得很好

16 emacs shell zsh

我一直在尝试在我的emacs会话中使用Zsh,而没有emacs重新映射所有Zsh键.我发现ansi-term对此很好,但是,我仍然有一些问题.我输出了很多垃圾字符,我能够解决它:

## Setup proper term information for emacs ansi-term mode
[[ $TERM == eterm-color ]] && export TERM=xterm
Run Code Online (Sandbox Code Playgroud)

但一切仍然不能很好地完成.现在我无法在屏幕外绘制输出,特别是在使用Cr等搜索时.

有什么想法吗.其他人有Zsh + Ansi术语正常工作?

ben*_*erd 14

试试MultiTerm.

它是唯一一款似乎与zsh配合使用的Emacs终端模式.它允许您轻松设置要由emacs捕获的命令以及您希望路由到终端的命令.到目前为止,默认设置对我来说已经足够了.

此外,将以下内容添加到.zshrc中,以允许emacs在您浏览时跟踪当前目录.

if [ -n "$INSIDE_EMACS" ]; then
  chpwd() { print -P "\033AnSiTc %d" }
  print -P "\033AnSiTu %n"
  print -P "\033AnSiTc %d"
fi
Run Code Online (Sandbox Code Playgroud)

  • 这很棒。您知道如何将其扩展到ssh连接吗?(例如,假设我的外壳已在特定路径上连接到远程计算机)。 (2认同)

Cha*_*tin 3

嗯。我认为我从未见过任何花哨的编辑在 ansi-term 中表现良好,尽管我可能已经有 20 年没有尝试过了。顺便问一下,您是否尝试过 shell 模式(Mx shell),因为无论如何,使用 EMACS 会更自然。

也就是说,通读 term.el 文件,看起来 ansi-term 正在做很多自己的管理。您可能需要查看术语“原始模式代码”,从第 1230 行左右开始,至少在 EMACS 22.3 中是这样。