首先我启动了eshell,然后输入命令cd /plink:<user>@<host>:/home/
然后我收到以下错误信息:
Microsoft Windows [Version 6.1.7601]版权所有(c)2009 Microsoft Corporation。保留所有权利。
您的管理员已禁用命令提示符。
按任意键继续. . .
我尝试使用plink建立连接(它在我的路径中),还通过*Messages*缓冲区找到了以下内容:
无法找到(C:\Windows\system32\cmd.exe)的本地shell提示符
我90%确定这是因为我的机器上已禁用cmd,因为当我在另一台我知道已启用cmd的计算机上尝试相同的设置时,一切正常。
我已修改我的.emacs
文件以包括:
(require 'tramp)
(set 'tramp-encoding-shell "C:/Windows/System32/WindowsPowershell/v1.0/powershell.exe")
(set 'tramp-encoding-command-switch "-Command")
我得到了不同的结果,但结果似乎是混乱无序的(第三行看起来像是提示符,
\
和>
字符处于正确的位置...)。我找到了一个相当好的描述 tramp-encoding-shell 是什么 的文章,还有一个相关的 SO 问题,这里是在 github 上的
tramp-encoding-shell
源代码/文档。
更新
在将 powershell 设置为 tramp-encoding-shell 后尝试打开 plink 连接失败后,我的屏幕显示如下:
$OutputEncoding = New-Object -typename System.Text.UTF8Encoding
,这样就消除了乱码问题,但是现在出现了“找不到本地shell提示符(...powershell)”的错误。我认为新的错误可能与你提到的EOL有关。 - John