Weird character zsh in emacs terminal

2020-02-17 02:20发布

问题:

When using the terminal in emacs (M-x term) under MacOS for some reason it always posts the characters 4m before every line in zsh and always prints 2 lines containing the user info such as

4m--(jesus@laptop:/dir)----
4m--(jesus@laptop:/dir)----
prompt>

It's more of an annoyance than anything but I was just wondering if there's a way to fix this. I also seem to have issues in Zsh in Mac OS emacs terminal mode when a lot of output is written to it it seems to reduce it all to one line and constantly overwrite the same line (may be related as the 4m is possibly just a special character that emacs is treating differently which can affect formatting).

If need be I can post my .zshrc and .emacs files.

回答1:

You don't have eterm-color terminfo. First, you try to add following S-exp in your configuration file and evaluate.

;; Use Emacs terminfo, not system terminfo
(setq system-uses-terminfo nil)

If problem is not resolved previous setting, you should create eterm-color terminfo by using following command. (terminfo path may different from your system)

# If you use Cocoa Emacs or Carbon Emacs
tic -o ~/.terminfo /Applications/Emacs.app/Contents/Resources/etc/e/eterm-color.ti


回答2:

I needed to set the following environment variables in my ~/.zshrc

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export TERM=xterm-256color


回答3:

This installed eterm-color.ti for me on OSX Mavericks 10.9.5:

  1. Upload eterm-color.ti to /tmp on the remote OSX server.

  2. Run the command sudo tic -o /usr/share/terminfo /tmp/eterm-color.ti on the server.

In my case, this put a file eterm-color in the directory /usr/share/terminfo/65/



标签: macos emacs zsh