我希望在运行vi
时使用adb shell
。开始" vi"简单。但是,我发现 ESC 键似乎没有通过它,所以我无法退出插入模式。
更广泛地说,我似乎无法向adb shell发送ESC
字符。我已经彻底扫描了网络,并且找不到任何有类似问题的人(更不用说答案了)。
我在三星S4上运行VRUFNK1。在PC端,我正在运行" adb shell" Windows下的Cygwin命令。
思想???
更新:这里有一些可能的线索。
od -cb > file
,所以ESC似乎正在进入在adb shell下运行的程序。与#1类似,bash(Bash X)似乎收到它,虽然从bash回复是非常奇怪的。我可以使用ESC进入"编辑模式"在我的bash shell(Bash X)中滚动浏览我的历史记录(我已经运行set -o vi
),但体验非常奇怪。当我按下ESC,k时,屏幕上没有任何变化,但我在命令历史记录中的位置上升了一个梯级(应该如此);随后按下''导致一个''被回显到屏幕(而不是我的历史列表中的相关命令)。当我最终点击回车时,执行我的历史记录列表中的正确命令(!)。
更新2:进展......
我尝试在" adb shell中设置stty值"和我的cygwin bash shell中的那个一样,并没有任何效果。
我也试过这个:Avoiding escape timeout issues in vim但它没有帮助。
:so <filename>
从文件中读取)。部分解决方案:
在&#34; vi&#34;之后,在 ESC 之后立即键入<cr>
工作 - 接受ESC,我可以退出编辑器。这很尴尬,编辑窗口仍然无法使用(好像TERM被设置为错误的值),但这是进步。
另外,当我进入ssh时,工作正常。这个shell由telnet服务器启动;与终端仿真器类似的情况直接在设备上。 Ssh有自己的服务器,然后分离shell。对于&#34; adb shell&#34;,shell由/sbin/adbd
分叉 - 据我所知,这个环境简直就是不寻常的。这对我来说是一个巨大的进步 - 至少现在我有办法使用我的PC在设备上进行全屏编辑(而不是直接在S4的小屏幕上进行编辑)。感谢Jack Palevich的建议。
我现在只能想到两件事:
我开始认为它根本不起作用。
更新3:XDA开发者的信息
我在XDA开发者论坛上找到了一些相关的帖子。似乎人们长期以来一直存在问题(至少从2010年开始)。我没有找到任何解决方案。
XDA Link 1
XDA Link 2
XDA Link 3
还有一个段落列出了与我的经验相符的各种感知/建议的adb shell错误: