我正在尝试通过SSH连接到远程shell,在Windows XP上使用Emacs。我目前正在使用Putty,但我想切换到Emacs。
我找不到合适的方法。我已经实现的最好的是运行Plink(Putty的命令行版本)作为子shell,但我仍然得到虚假的字符和重复的提示,如下所示:
Last login: Fri Jun 18 11:09:11 2010 from XXXXX
^]0;root@XXXXX:~^[root@XXXXX ~]# ls
ls
file-1.cfg file-10.log file-100.pcap
^]0;root@XXXXX:~^[root@XXXXX ~]#
^]0;root@XXXXX:~^[root@XXXXX ~]#
我猜那些带有“^”前缀的序列是转义字符,但我找不到一种方法来翻译它们,或者找不到它们。我试过这个:
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
(let ((explicit-shell-file-name "C:/Programmi/Putty/plink")
(explicit-plink-args '("root@XXXXX")))
(shell))
任何提示?您是否有办法在本机Windows版本的Emacs中运行Secure Shell?
软件:GNU Emacs 23.1.1,plink.exe版本0.60,Windows XP SP3
感谢。
答案 0 :(得分:1)
http://www.emacswiki.org/emacs/AnsiTermHints介绍了如何使用ansi-term-mode
进行远程主机的ssh连接。
有问题的序列(模糊地)看起来像标准的Bash提示,将xterm
中的标题栏设置为当前目录等。您可以通过设置TERM
来获得不同的默认提示创建SSH连接时的环境变量,以便Bash不会认为您的终端是xterm
。尝试使用TERM=emacs
(根据需要调整shell的语法)。如果成功,您可能根本不需要ansi-term-mode
,但如果您有ls
目录列表着色等,它仍然有用。