emacs终端中奇怪的字符zsh

Jes*_*mos 31 macos emacs zsh

当在MacOS下使用emacs(Mx术语)中的终端由于某种原因它始终在zsh中的每一行之前4m发布字符并且总是打印包含用户信息的2行,例如

4m--(jesus@laptop:/dir)----
4m--(jesus@laptop:/dir)----
prompt>
Run Code Online (Sandbox Code Playgroud)

这比任何事情更令人烦恼,但我只是想知道是否有办法解决这个问题.我也似乎在Mac OS emacs终端模式下的Zsh中遇到问题,当很多输出被写入它时似乎将它全部减少到一行并且不断覆盖同一行(可能与4m相关可能只是一个特殊的emacs处理不同的字符,可能会影响格式化).

如果需要,我可以发布我的.zshrc和.emacs文件.

syo*_*hex 56

你没有eterm-color terminfo.首先,您尝试在配置文件中添加以下S-exp并进行评估.

;; Use Emacs terminfo, not system terminfo
(setq system-uses-terminfo nil)
Run Code Online (Sandbox Code Playgroud)

如果先前的设置没有解决问题,您应该使用以下命令创建eterm-color terminfo.(terminfo路径可能与您的系统不同)

# If you use Cocoa Emacs or Carbon Emacs
tic -o ~/.terminfo /Applications/Emacs.app/Contents/Resources/etc/e/eterm-color.ti
Run Code Online (Sandbox Code Playgroud)

  • 当从emacsformacosx.com安装时,Cocoa Emacs不会安装此文件.因此,如果您从那里使用emacs,则需要运行上面的第二个命令. (3认同)
  • 我仍然需要使用最新的Homebrew Emacs进行terminfo设置.我用过`tic -o~/.terminfo/usr/local/Cellar/emacs/24.3/share/emacs/24.3/etc/e/eterm-color.ti` (3认同)

小智 8

我需要在〜/ .zshrc中设置以下环境变量

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)