2011-09-21 84 views
6

不管我用术语或ANSI长期在Emacs启动zsh的,我遇到这个问题,每当我输入命令时,输出会产生一些垃圾字符,如:的zsh在Emacs输出垃圾字符

[ruby- 1.9.2]〜pwd 2; pwd1; pwd/Users/tyraeltong

“2; pwd1; pwd”拧紧输出,不知道其他人是否遇到同样的问题?我在这里找到了类似的线程Getting Emacs ansi-term and Zsh to play nicely,但是由[[$ TERM == eterm-color]] & & export TERM = xterm我仍然看到垃圾字符。

+0

这是通过在'.zshrc'东西直接或间接引起的问题。可能是一个糟糕的提示设置,或者对它正在运行的终端做出毫无根据的假设。发布你的'.zshrc'。 – Gilles

+2

其实我没有在我的.zshrc中进行任何自定义,而只是使用.oh-my-zsh:https://github.com/robbyrussell/oh-my-zsh –

+1

我有同样的问题(哦, my-zsh) –

回答

0

它可能是一个有bash语法的恶意PROMPT_COMMAND。试试:

export PROMPT_COMMAND="" 

看看是否有帮助。

+0

这没有帮助... –

5

的Emacs不玩ZLE不错,所以我有这个在我的〜/ .zshrc:

if [[ -n ${INSIDE_EMACS} ]]; then 
    # This shell runs inside an Emacs *shell*/*term* buffer. 
    prompt walters 
    unsetopt zle 
fi 
+0

感谢您的回复,但使用此设置,我仍然看到额外的位,例如: 2; LS -G -lhF1; lstotal 72 –

+0

Hm,是否INSIDE_EMACS已设置?例如,在emacs中执行'M-x shell',在那里执行'echo $ INSIDE_EMACS'。它应该输出类似“24.0.97.1,comint”。 如果没有,那么这个变量不是由emacs设置的(可能是因为你的emacs太旧了?!)。在这种情况下,您可以将测试更改为'[[$ {TERM} ==“dumb”]]'这也应该起作用。 –

+0

啊,你可能也需要这个在你的〜/ .emacs中: '(add-hook'shell-mode-hook'ansi-color-for-comint-mode-on)' –