2016-07-25 57 views
1

我在emacsipython內使用gnome-terminal,emacs -nw,eshellemacs外殼錯誤地解釋ipython字符

由於某些原因,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 
+1

如果你運行這個:這可以使用被禁用'回聲-e「\ 033 [0; 31mhello \ 033 [1; 0m'',你得到一個紅色的 「你好」,或者亂碼?試圖告訴它是ipython還是你的整個shell。如果你運行'shell'而不是'eshell',你看到同樣的東西嗎?最後,如果你使用沒有顏色的ipython,你可以運行'ipython --colors = NoColor'。 –

+0

嘗試'shell'打印一個紅色的「hello」,'eshell'打印完全相同的字符串,就好像它不解析它。但ipython在兩者中都有相同的問題。而' - colors = NoColor'沒有幫助,結果相同。 – adrin

+0

我有兩個'ipython's,一個是2.4,另一個是5.我沒有與舊的問題。新的是我的才能。 – adrin

回答

2

感謝@布萊恩 - malehorn,這個問題確實是由ipython發送的控制字符。

這可以通過嘗試使用echo -e '\033[0;31mhello\033[1;0m'來回顯一個彩色文本來檢查,這在我的案例中打印了一個彩色文本。

ipython --colors=NoColor 

我的問題然而,是不是這樣,通過IPython中發送到外殼,因此它必須有控制字符:如果問題是彩色文本,也可能是由固定。

ipython --simple-prompt