adb shell:无法使用 ESCAPE 键

2024-05-26

I want to use vi when running adb shell. Starting "vi" is easy. However, I found that the ESC key doesn't seem to get through to it, so I can't exit insert mode.

更广泛地说,我似乎无法发送ESCadb shell 的字符根本不存在。我已经彻底扫描了网络,但找不到任何有类似问题的人(更不用说答案)。

我在 Samsung S4 上运行 VRUFNK1。在 PC 端,我在 Windows 下从 Cygwin 运行“adb shell”命令。

Ideas???


更新:这里有一些可能的线索。

  1. adb shell 似乎不是问题。我可以在运行的文件中捕获 ESC
    od -cb > file,所以 ESC 似乎正在访问 adb shell 下运行的程序。
  2. 所有命令都会在我的“adb shell”中得到回显(就好像 set -v 已打开,但事实并非如此)。
  3. 我注意到输入似乎没有以“原始模式”从我的 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 中的值相同,但这没有任何效果。

我也尝试过这个:避免 vim 中的转义超时问题 https://code.google.com/p/mintty/wiki/Tips#Avoiding_escape_timeout_issues_in_vim但这没有帮助。

  • 我尝试了这个(通过使用从文件中读取:so <filename>).
  • 不幸的是,“vi”无法识别这些命令(它们实际上是“vim”命令)。

Partial Solution: Typing a <cr> immediately after the ESC when in "vi" works -- the ESC is accepted and I can exit the editor. It's awkward, and the editing window is still unusable (as if TERM was set to the wrong value), but this is progress.

另外,当我 ssh 登录时一切正常。该 shell 由 telnet 服务器启动;与直接在设备上使用终端仿真器的情况类似。 ssh 有自己的服务器,然后分叉出 shell。对于“adb shell”,该 shell 是由以下命令分叉出来的:/sbin/adbd——据我所知,那个环境有些不寻常。这对我来说是一个巨大的进步——至少现在我可以使用我的 PC 在设备上进行全屏编辑(而不是直接在 S4 的小屏幕上进行编辑)。感谢杰克·帕列维奇的建议。

我现在只能想到两件事可以尝试:

  1. 尝试对某人的设备运行 adb shell(但该设备必须运行 root,以便我可以运行 Busybox 的“vi”)(顺便说一句,“vi”的版本不是问题 - 它可以从 ssh 运行良好。)
  2. 作为其他人在我的设备上的“adb shell”中运行“vi”,从他们的主机(最好是之前在某处成功运行“adb shell”和 vi 的人)。

我开始认为这根本行不通。


更新 3:来自 XDA 开发者的信息
我在 XDA 开发者论坛上找到了一些相关帖子。似乎人们长期以来一直面临这个问题(至少从 2010 年开始)。我没有找到任何解决方案。

XDA链接1 http://forum.xda-developers.com/showthread.php?t=816159
XDA链接2 http://forum.xda-developers.com/showthread.php?t=789238
XDA链接3 http://forum.xda-developers.com/showthread.php?t=2133211

还有一段列出了与我的经验相符的各种感知/建议的 adb shell 错误,此处:


你是对的 - 它根本无法在 Windows 或 Cygwin shell 下工作。我发现让它工作的最简单方法是使用腻子托盘 https://puttytray.goeswhere.com/.

Check 我的答案 https://stackoverflow.com/a/29033010/648313在链接的线程中获取说明和其他详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

adb shell:无法使用 ESCAPE 键 的相关文章

  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • Android - 从资产中解析巨大(超大)JSON 文件的最佳方法

    我正在尝试从资产文件夹中解析一些巨大的 JSON 文件 我如何加载并添加到 RecyclerView 我想知道解析这种大文件 大约 6MB 的最佳方法是什么 以及您是否知道可以帮助我处理此文件的良好 API 我建议您使用GSON lib h
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 带有 EditText 和 Spinner 的对话框

    我有一个按钮 单击后会弹出一个对话框 我希望对话框有一个EditText and a Spinner对话框内 我不知道如何设置它的视图 我有一个代码AlertDialog它有效 只是EditText and Spinner我需要将其放入其中
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号

随机推荐

  • Numpy ,Python3.6 - 无法理解为什么地址不同?

    这是我的代码 my array 1 np arange 25 reshape 5 5 print my array 1 my array red my array 1 1 2 print my array red my array blue
  • 纹理的内部格式

    看下面的OpenGL函数 void glTexImage2D GLenum target GLint level GLint internalFormat GLsizei width GLsizei height GLint border
  • 在Python中读取PDF属性/元数据

    如何使用 Python 读取 PDF 文件中存储的属性 元数据 例如标题 作者 主题和关键字 Try pdfminer https github com euske pdfminer from pdfminer pdfparser impo
  • 删除 JSON 属性 [重复]

    这个问题在这里已经有答案了 如果我有一个 JSON 对象 请说 var myObj test key1 value key2 value 我可以删除 key1 使其变为 test key2 value Simple delete myObj
  • 定义根路径

    我正在寻找一种将配置变量定义为我的网站的根路径的方法 定义这个的最好方法是什么 我正在使用 Codeigniter config root path 这是我的 config 文件夹中的 site config 文件 dev dev appl
  • 移动时如何将图像保留在另一图像后面?

    Edit Here https jsfiddle net 33cL1qos 6 我可以在选择时将其保留在后面 但由于某种原因它现在不可拖动 我可能做错了什么 我能够从计算机上传图像 然后移动图像 我的问题 当我选择图像时 它会向前弹出 直到
  • 温莎城堡:UsingFactoryMethod 无法实例化,出现奇怪的错误

    当我使用这个注册时 container Register Component For
  • Laravel htmlspecialchars() 期望参数 1 是我的项目中给出的字符串、对象?

    所以我正在尝试编写一个简单的网站表单 但它有这个 htmlspecialchars 错误 我尝试制作 message 但没有成功 有同样的错误 这是我的控制器
  • 如何获取Android崩溃日志?

    我有一个不在市场上的应用程序 使用调试证书签名 但希望在我的应用程序崩溃时获取崩溃日志数据 在哪里可以找到我的应用程序崩溃原因的日志 如果您的应用程序正在被其他人下载并在远程设备上崩溃 您可能需要查看 Android 错误报告库 参考这个帖
  • 比较两个 UIImage

    我有一个应用程序 它将在 SQLDatabase 中保存一组图像 然后用户将拍摄一张照片 我希望能够将其与数据库中的图像进行匹配 我不知道从哪里开始 有人可以帮忙吗 给我指明正确的方向吗 Thanks 从结账开始OpenCV http op
  • 在 Windows 服务中调用 Web 服务

    我使用了一个简单的 Windows 服务来使一个方法在特定时间运行并且运行良好 接下来我已经尝试过 protected override void OnStart string args this WriteToFile Simple Se
  • 将视图中的 src 属性设置为 MVC3 项目外部的 url

    我正在尝试创建一个应用程序来显示本地存储在网络服务器上的图像 这是我的观点 请注意 条目 是绝对地址 例如 C Images Image1 jpg 但是 当我运行它时 我得到 Not allowed to load local resour
  • 如何重定向到WEB-INF文件夹中的JSP

    我有一个带有 NAV 的 jsp 其中还包含 UL 和以下元素 如下面的代码所示
  • 在没有加载项的情况下加载 Excel

    All 我编写了一个电子表格应用程序 用户通过双击我提供的图标来加载它 问题是用户有很多插件 这会降低 Excel 的速度 如何使用命令行开关加载 Excel 来禁用所有加载项 该问题适用于 Excel 2003 和 Excel 2007
  • 如何在 SceneKit 中将变换矩阵应用于向量

    我在这里错过了什么吗 各种向量 矩阵函数here https developer apple com library prerelease ios documentation SceneKit Reference SceneKit Func
  • JavaScript 相当于 jQuery 的 keyup() 和 keydown()

    我在 stackoverflow 上看到过这个链接 document ready 相当于没有 jQuery https stackoverflow com questions 799981 document ready equivalent
  • JFrame 图标在 Ubuntu 12.04 中不显示

    我使用一些图像图标开发了一个 Swing 应用程序 应用程序 jar 文件在 Windows 中按预期工作 但相同的 jar 文件在 Ubuntu 12 04 操作系统上不显示框架的图像图标 我的示例代码 ImageIcon ImageIc
  • iOS 4.2 - 打电话后返回应用程序

    我可以使用以下命令在我的应用程序中成功发起电话呼叫 UIApplication sharedApplication openURL NSURL URLWithString tel 123456789 但是 通话结束后是否可以自动返回应用程序
  • 谷歌地图标记被削减了一半 互联网浏览器

    我在 Internet Explorer 中的谷歌地图标记图标遇到了一个奇怪的问题 我的所有标记都显示为一半 两倍且偏移超过 50 这是使用谷歌的演示代码 所以我在其他地方用样式或 jquery 做的事情一定很奇怪 但我不知道是什么 以前有
  • adb shell:无法使用 ESCAPE 键

    I want to use vi when running adb shell Starting vi is easy However I found that the ESC key doesn t seem to get through