更广泛地说,似乎我根本不能将ESC字符发送到adb shell.我已经非常彻底地扫描了网络,但却找不到有类似问题的人(更不用说答案了).
我在三星S4上运行VRUFNK1.在PC端,我在Windows下运行Cygwin的“adb shell”命令.
想法?
更新:这是一些可能的线索.
> adb shell似乎不是问题.我可以在运行的文件中捕获ESC
od -cb>文件,所以ESC似乎正在进入在adb shell下运行的程序.
>所有命令都在我的“adb shell”中回显(好像set -v已启用,但实际上并非如此).
>我注意到输入似乎没有以“原始模式”从我的cygwin shell发送到adb shell – 也就是说,我输入的任何文本都会在本地缓冲,直到我回车 – 然后整个行被发送.我不确定为什么这会使ESC失效,但当然vi并不期望以这种方式接收输入,也许这表明我的环境中存在一些不寻常的东西.
类似于#1,bash(Bash X)似乎接收它,虽然从bash回复是非常奇怪的.我可以使用ESC在我的bash shell(Bash X)中输入“编辑模式”来滚动我的历史记录(我运行set -o vi),但体验非常奇怪.当我按下ESC,k时,屏幕上没有任何变化,但我在命令历史记录中的位置上升了一个梯级(应该如此);随后按下’k’会使’k’回显到屏幕(而不是我历史记录列表中的相关命令).当我最终点击回车时,执行我的历史记录列表中的正确命令(!).
更新2:进展……
我尝试将“adb shell”中的stty值设置为与我的cygwin bash shell中的stty值相同,但没有任何效果.
我也试过这个:Avoiding escape timeout issues in vim但它没有帮助.
>我试过这个(通过使用以下方式从文件中读入:so< filename>).
>不幸的是,“vi”无法识别命令(它们实际上是“vim”命令).
部分解决方案:
输入< cr>紧跟在ESC后“vi”工作时 – ESC被接受,我可以退出编辑器.这很尴尬,编辑窗口仍然无法使用(好像TERM被设置为错误的值),但这是进步.
另外,当我进入ssh时,工作正常.这个shell由telnet服务器启动;与终端仿真器类似的情况直接在设备上. Ssh有自己的服务器,然后分离shell.在“adb shell”的情况下,shell被/ sbin / adbd分叉 – 据我所知,这个环境简直就是不寻常的.这对我来说是一个巨大的进步 – 至少现在我有办法使用我的PC在设备上进行全屏编辑(而不是直接在S4的小屏幕上进行编辑).感谢Jack Palevich的建议.
我现在只能想到两件事:
>尝试对某人的设备运行adb shell(但该设备必须运行root,以便我可以运行BusyBox的“vi”)(BTW,“vi”的版本不是问题 – 它从ssh运行正常.)
>作为其他人在我的设备上的“adb shell”中运行“vi”,从他们的主机(最好是成功运行“adb shell”和之前某个地方的vi).
我开始认为它根本不起作用.
更新3:来自XDA开发人员的信息
我在XDA开发者论坛上找到了一些相关的帖子.似乎人们长期以来一直存在问题(至少从2010年开始).我没有找到任何解决方案.
XDA Link 1
XDA Link 2
XDA Link 3
还有一个段落列出了符合我经验的各种感知/建议的adb shell错误,在这里:
Proposed ADB Shell Bugs
解决方法 你是对的 – 它在windows或Cygwin shell下无法正常工作.我发现使其工作的最简单方法是使用 PuTTYTray.检查链接线程中的my answer以获取说明和其他详细信息.
总结以上是内存溢出为你收集整理的android – adb shell:不能使用ESCAPE键全部内容,希望文章能够帮你解决android – adb shell:不能使用ESCAPE键所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)