这很奇怪.我在下面定义了以下提示zsh:
local user_host='%{$terminfo[bold]$fg[green]%}%n @ %m%{$reset_color%}'
local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}'
local git_branch='$(git_prompt_info)%{$reset_color%}'
local return_code="%(?..%{$fg[red]%}%? ?%{$reset_color%})"
PROMPT="??${user_host} %D{[%a, %b %d %I:%M:%S]} ${current_dir} ${git_branch}
??%B$%b "
RPS1="${return_code}"
Run Code Online (Sandbox Code Playgroud)
它在Emacs()gnome-terminal中的ansi-term终端以及终端中运行良好M-x ansi-term- 请参阅下面的示例:

但是,它multi-term在Emacs 下运行不正常,如下所示:

我认为multi-term能够解释终端喜欢gnome-terminal或ansi-term做的同一组转义字符 .为什么不git-prompt_info正确解释由其他人返回的转义字符?
我也尝试过:
set-terminal-coding-system 并将其设置为 utf-8-unixTERM=eterm-color 在多学期终端内,或在致电Emacs之前,等等.TERM= 在多学期终端内,或在致电Emacs之前,等等.export TERM我的.zshrc到目前为止,最好的解决方案似乎是执行以下操作:
TERM=xterm-256color
但是导致我在这里报告的另一个问题:在Emacs中将转义序列传递给ansi-term中的shell.
有没有办法让Emacs在运行时默认提示我选择的二进制文件M-x ansi-term.它总是要求我,/bin/zsh但我有一个新的安装zsh在不同的路径.
或者,让Emacs在我键入时运行我想要的二进制文件会很棒 M-x my-ansi-term
我喜欢使用Emacs ansi-term模式运行shell程序,但我想知道如何在ansi-term模式下设置最大缓冲区大小,所以即使有很多行,我也不会丢失命令历史记录?(谷歌似乎没有给出明显的答案.)
假设我有一个运行M-x ansi-term缓冲区(例如运行zsh)的Emacs窗口(即Emacs称之为框架的细分),其~500宽度为像素宽.然后我运行几个shell命令,输出被包装以适应这些500像素.
假设我现在使这个窗口或缓冲区更宽(例如1000像素),可能是因为我杀死了框架中的其他窗口,为我的ansi-term窗口提供了更多空间.
有没有办法让我的ansi-term窗口中的旧输出调整大小以利用新的窗口大小?(即根据新窗口大小制作更宽的线条并重新包装它们)?
在ansi-termEmacs 的终端中,当我ssh到特定的远程主机时,终端无法正确识别,我收到错误:
'eterm-color': unknown terminal type.
Run Code Online (Sandbox Code Playgroud)
我添加export TERMINFO=~/.terminfo到.bashrc远程计算机上,我在远程计算机上尝试了以下内容:
cp -r /usr/share/emacs/21.4/etc/e ~/.terminfo
Run Code Online (Sandbox Code Playgroud)
为了以防万一,我还尝试将我自己的本地副本/etc/e(Emacs 24.3)复制到~/.terminfo远程计算机上.
此外,如果它很重要,如果我尝试infocmp远程机器,我得到:
>infocmp
infocmp: couldn't open terminfo file /usr/share/terminfo/e/eterm-color.
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
Mercurial的color 扩展很棒,但是在该页面上没有列出有效颜色的列表.我找了一个名为color的python文件,希望我能够阅读源代码并在那里看到它,但没有运气.我希望使用灰色或浅灰色作为颜色,但它无效.灰色(或灰色)似乎很可能是颜色列表中的颜色.
我在哪里可以找到color扩展名的有效颜色列表?或者我在哪里可以找到color扩展的来源?
下面红色椭圆中的文字很难阅读

当我用C-u C-x =(哪个脸)检查脸部时,我看到以下内容:

所以我去更新脸部term-bold(见下文),但颜色似乎与我在屏幕上面实际得到的颜色不一致(根据脸部定义,它应该是蓝色+黄色).有什么想法吗?

我试图在emacs中使用ansi-term(配置为tcsh shell).我看到显示换行符的一些问题.如果我从终端(ansi-term)尝试以下操作,我会得到正确的输出:
myterm > echo "Line1"; echo "Line2"; echo "Line3";
Line1
Line2
Line3
myterm >
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试在shell脚本中添加相同的行并尝试从ansi-term执行脚本,则输出错误
脚本:(测试)
#!/usr/bin/env tcsh
echo "Line1"; echo "Line2"; echo "Line3";
Run Code Online (Sandbox Code Playgroud)
运行脚本(测试):
myterm > ./test
Line1
Line2
Line3
myterm >
Run Code Online (Sandbox Code Playgroud)
注意:/ usr/bin/env tcsh指向正确的shell(它与我在调用ansi-term时使用的shell相同).从gnome-terminal执行脚本也会显示正确的输出.我也试过设置以下变量,但它没有解决我的问题:
(set-terminal-coding-system 'utf-8-unix)
(setq default-process-coding-system '((utf-8-unix . utf-8-unix)))
Run Code Online (Sandbox Code Playgroud) 当我使用SSH从emacs中的ansi-term会话登录到Ubuntu 12.04计算机时,提示显示错误:
0;ubuntu@jumplin: ~ubuntu@jumplin:~$
Run Code Online (Sandbox Code Playgroud)
这应该如下所示:
ubuntu@jumplin:~$
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些关于utf-8和颜色支持的建议,但它们似乎没有工作(颜色目前在ansi-term中工作正常):
我认为它可能与不受支持的ansi转义代码或类似的东西有关,但我不确定 - 此终端会话的PS1的值是:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Run Code Online (Sandbox Code Playgroud)
任何建议都会非常感激:)当终端会话中出现奇怪的角色时,我似乎总是有点失落.
在Emacs中,有时我会用shell启动一个shell ansi-term,然后从这个shell中运行IPython(另一个shell),它进入一个长循环打印一个长而长的输出.
当发生这种情况时,我经常想发送SIGINT以停止运行IPython的脚本,但有时这需要花费太长时间才能捕获IPython Ctrl+C Ctrl+C(有时IPython似乎永远不会听它).有趣的是,当我从常规终端运行它时,似乎不会发生这种情况.
为什么会这样?它是Emacs还是IPython问题?