命令辅助输入与自动完成 - 减少手敲错误
手机上写命令的痛点
在手机屏幕上手动敲 shell 命令一直是个痛苦的事——pm disable-user --user 0 com.example.app 这种长命令容易打错字、漏掉参数。Runner 的辅助输入功能就是来解决这个问题的。
自动补全
当你在编辑器里输入命令前几个字符时,Runner 会弹出候选补全列表:
- 输入
pm→ 弹出pm相关的所有子命令(disable-user、enable、uninstall、list packages等) - 输入
pm dis→ 直接缩小到disable-user和disable - 输入包名前几个字符 → 根据已安装应用列表自动补全包名
怎么触发:不同版本触发方式略有差异——可能是等待 1-2 秒自动弹出、可能是点某个补全按钮、可能是输入空格后弹出。第一次使用建议先随便输一个命令试试触发方式。
语法检查
Runner 会在你保存命令前做基本的 shell 语法检查:
- 引号是否配对(单引号、双引号)
- 括号是否闭合
- 管道符
|前后是否有命令(防止空管道) - 常见拼写错误提示(比如
dsiable会提示可能要写disable)
检查发现问题时不会直接报错拒绝保存,而是在编辑器里标红有问题的部分,让你自己决定要不要改。这是因为 Runner 做的是启发式检查,有些合法的 shell 写法 Runner 可能没识别出来(比如复杂的 $(command substitution)),强制拦截反而影响使用。
参数提示
某些复杂命令(比如 dumpsys activity、pm list)支持子命令和参数提示:
输入: dumpsys activity
提示: activities services providers recents broadcasts processes
输入: pm disable-user
提示: --user 0 包名
实际操作演示
假设你想冻结抖音,但记不清准确包名:
- 打开 Runner,在预设槽位或 JSON 编辑器里开始输入
- 输入
pm disable-user --user 0 com.ss - Runner 弹出候选补全:
com.ss.android.ugc.aweme(抖音国际版)、com.ss.android.ugc.aweme.lite(抖音极速版) - 选你要的那个,命令自动补全完成
- 保存并执行
整个过程只需要敲十几个字,剩下的 Runner 帮你填完。
局限性
辅助输入是一个增强功能,不是 shell 解释器的完整实现:
- 支持的命令主要是 Android 自带的
pm、am、dumpsys、settings、getprop、input等系统工具 - 自定义脚本里的命令不会被补全
- 第三方二进制(比如你推送到
/data/local/tmp/的自己编译的可执行文件)不会被识别
所以复杂的脚本逻辑还是建议在电脑上写好 JSON 后导入 Runner,而不是完全在手机上手敲。