linux - emacs shell 错误地解释 ipython 字符

标签 linux emacs ipython eshell

我在 emacs 中使用 gnome-terminalemacs -nweshellipython.

由于某些原因,emacs shell 错误地解释了字符。

这是我看到的(请注意最后 3 行):

$ ipython
Python 3.5.2 (default, Jun 28 2016, 08:46:01)
Type "copyright", "credits" or "license" for more information.

IPython 5.0.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

^[[?12l^[[?25hprint("hi")
^[[J^[[?7h^[[?12l^[[?25h^[[?2004lhi

^[[?12l^[[?25h

我相信这一定是某种编码问题,但我不确定如何诊断和修复它。

如果有帮助,这是我的 env 输出:

$ env
XDG_VTNR=2
XDG_SESSION_ID=c3
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=gnome-
VTE_VERSION=4402
GJS_DEBUG_OUTPUT=stderr
WINDOWID=29360134
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
USER=adrin
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
SESSION_MANAGER=local/mydarlingarch:@/tmp/.ICE-unix/498,unix/mydarlingarch:/tmp/.ICE-unix/498
USERNAME=adrin
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
MAIL=/var/spool/mail/adrin
DESKTOP_SESSION=gnome
QT_QPA_PLATFORMTHEME=qgnomeplatform
XDG_SESSION_TYPE=x11
PWD=/home/adrin
LANG=en_US.UTF-8
GDM_LANG=en_US.UTF-8
GDMSESSION=gnome
XDG_SEAT=seat0
HOME=/home/adrin
SHLVL=1
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
XDG_SESSION_DESKTOP=gnome
LOGNAME=adrin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
WINDOWPATH=2
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:0
XDG_CURRENT_DESKTOP=GNOME
COLORTERM=truecolor
XAUTHORITY=/run/user/1000/gdm/Xauthority
_=/usr/bin/env

最佳答案

感谢@brian-malehorn,问题确实出在 ipython 发送的控制字符上。

这可以通过使用 echo -e '\033[0;31mhello\033[1;0m' 尝试回显彩色文本来检查,在我的例子中它打印了彩色文本。如果问题是彩色文本,可以通过以下方式解决:

ipython --colors=NoColor

然而,我的问题不是上述问题,因此它一定是 ipython 发送到 shell 的控制字符。这可以使用以下方式禁用:

ipython --simple-prompt

关于linux - emacs shell 错误地解释 ipython 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569373/

相关文章:

vim - 在 Emacs viper 模式下禁用 ESC 作为元数据?

emacs - 从 switch-to-buffer 列表中排除 "hated buffers"

emacs lisp,如何获取缓冲区主要模式?

mysql - 将 mysqldump 文件从一个目录复制到备份目录

linux - 计算目录大小的最快方法

python - 如何打印 jupyter 中的所有可用内存

python - 多个单元格的自定义 IPython 魔术命令

ipython - 在 IPython 笔记本中循环魔法函数

c - 如何编写一个内核模块来查找内核中的路由表和arp缓存?

java - 支持构建 Java/maven 项目吗?