Emacs、tramp、XP上的plink问题

6

目标机器正在运行Ubuntu服务器8.04。
以下是Tramp输出:

tramp: Opening connection for nungu@ip.ip.ip.ip using nil...<br>
tramp: Waiting for prompts from remote shell<br>
tramp: Waiting 60s for prompt from remote shell<br>
tramp: Sending password<br>
tramp: Found remote shell prompt.<br>
tramp: Initializing remote shell<br>
Loading time-date...done<br>
tramp: Waiting 30s for remote `/bin/sh' to come up...<br>
tramp: Setting up remote shell environment

apply: Couldn't `stty -inlcr -echo kill '^U'', see buffer `*tramp/plink nungu@ip.ip.ip.ip*'

编辑,详细缓冲区在结尾处包含以下内容:

# Waiting 30s for remote `/bin/sh' to come up...
exec env 'ENV=' 'PROMPT_COMMAND=' 'PS1=$ ' /bin/sh
$ exec env 'ENV=' 'PROMPT_COMMAND=' 'PS1=$ ' /bin/sh
$ 
# Setting up remote shell environment
$ stty -inlcr -echo kill '^U'
stty -inlcr -echo kill '^U'

$ $ $ [[Regexp `\(^[^#$%>
]*[#$%>] *\|^[^#$%>
]*[#$%>] *\(\[[0-9;]*[a-zA-Z] *\)*\)\'' not found in 30 secs]]

命令:
stty -inlcr -echo kill '^U'
-inclr 关闭“将换行符转换为回车符”
-echo 关闭“回显输入字符”
kill '^U' 将'^U'设置为删除当前行
3个回答

4

同样的问题;并且有一个解决方法

正常工作:NTEmacs-22.1 - Tramp版本:2.0.55

失败:NTEmacs-22.3.1 - Tramp版本:2.0.58-pre

请看评论 - 2.0.*版本都无法在emacs-22.3.1上运行

升级到tramp 2.1.14 - emacs 22/3/1可以很好地工作

建议您尝试从Savannah升级。

注意:我没有正确配置,只是删除了listp/net中现有的tramp el和elc文件,并将下载的tar中的文件放入其中 - 您需要修改trampver.el.in以构建有意义的lisp文件 - 但这并不是特别难。


将22.3版本的emacs降级到tramp 2.0.55 - 问题依旧。 将22.1.1版本的emacs升级到tramp 2.0.58-pre - 仍然正常工作。看起来是emacs的回归。 - Chris
谢谢,我升级到23版本后,它的表现非常出色。比起之前那些让人头疼的问题要好得多。 - YHVH

1

查看缓冲区 tramp/plink nungu@ip.ip.ip.ip'

好的,这个缓冲区里面有什么?

编辑 感谢您添加了缓冲区输出。

'stty'命令正在尝试配置TRAMP将用于访问远程系统的终端。如果您直接通过SSH连接到系统并尝试运行该命令会发生什么?(使用TRAMP使用的相同参数...)


尝试将tramp的详细程度提高,通过将'tramp-verbose'设置为8或10(10的输出被描述为“巨大”,因此先尝试8)。这应该会向您显示有关tramp正在执行的更多信息。 - genehack
那个冗长度设置为10,我猜它试图在那些空命令中获取目录结构,但不能确定。 - YHVH
由于某些原因,该正则表达式未匹配成功,但我无法弄清楚原因。抱歉... - genehack

0

我不知道你所说的技术,但如果Genehack说你的“正则表达式不匹配”,那么你需要使用更简单的正则表达式进行测试,或者以其他方式简化你的解决方案,直到找出不起作用的部分。你知道,“它可以使用这个简单的正则表达式,但不能使用这个更复杂的正则表达式”或“它根本不是正则表达式,因为没有任何正则表达式可以工作”...

组件化、简化和括号化问题,如果你愿意的话...

我知道这是显而易见的一般建议,但现在是星期天早上...


正则表达式是 tramp 输出的一部分,所以是 tramp 调用了该正则表达式,而不是我,我猜这是命令执行失败了,还是最后一个成功的命令。 - YHVH
没错,但我想我的问题仍然是,如果有任何方法可以做到这一点...是否有任何方法可以只运行您尝试运行的命令的一部分...即使它给出了一个不完整的结果,至少您可以定位问题(然后以其他方式解决它)。 - Dan Rosenstark
或者看看这个命令(stty -inlcr -echo kill '^U'),你能否尝试一些其他你并不真正感兴趣的变化。也许控制字符U存在某些奇怪的问题或其他什么问题。 - Dan Rosenstark
这是在emacs中使用tramp远程打开任何文件的标准启动序列。所以,除非深入研究tramp代码并改变其工作方式,否则无法实现。 - YHVH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接