当前位置: 首页 > news >正文

[已解决] AHK 映射 ESC 延迟 500 ms 的严重问题

问题描述

今天发现一个重大bug,我竟然用了一年多都不知道!

CapsLock::Esc 

我的 ahk 脚本将 capslock 映射为 esc,但这在vim环境中,估算响应 500ms。

也就说按下 caps 键,还要等一会,才进入normal模式

如果直接按 esc 键,延迟50ms,这两者对比,差异感觉很明显。

测试方法

实验一 测试环境因素影响。分别在 Idea、vscode、终端 nvim 测试以下步骤,做对照实验。

  • 快速循环按 a + Caps 结果都偶尔出现意外插入字母a
  • 快速循环按 a + Esc 结果都不会出现意外插入字母a。

推测原因 :caps 按键经过 AHK 脚本处理时,可能加载了其他功能,最后映射到 Esc ,这个过程估算 500ms 。

实验二 测试拓展功能影响。准备两个脚本,一个只有一行映射命令(如上),另一个拓展了很多功能的 CapslockMagic。重复实验一的步骤。

结论 :结果单行命令脚本,延迟在 50 ms 内。这说明, CapslockMagic 脚本中,大量的 Caps & * 以及 ^! Caps 相关按键拓展功能,增加脚本加载时间(每次都遍历所有相关映射),才导致明显的延迟 500 ms。

解决方案

一 转移单键压力,适应新的按键习惯 ✅

init.vim.ideavimrc 配置文件中,设置 jk 映射 esc键,估算延迟 50 ms ,学会适应新的按键习惯。

inoremap jk <ESC>

vscode 的插件快捷键管理(vscode-neovim)比较特殊,应该这样写进 快捷键 JSON 文件(ctrl+p 搜索 shot)

  // vscode 特殊写法两个 inoremap jk <ESC>{"command": "vscode-neovim.compositeEscape1","key": "j","when": "editorTextFocus && neovim.ctrlKeysInsert && neovim.init && neovim.mode == 'insert'","args": "j"},{"command": "vscode-neovim.escape","key": "j k","when": "editorTextFocus && neovim.ctrlKeysInsert && neovim.init && neovim.mode == 'insert'","args": "jk"},

二 脚本全局配置调参

❌ 查询开发文档,即使设置无延迟按键等选项,都不能降低延迟,只能增高。

三 削减按键功能

❌ Caps 增强功能太强大,还跨系统,砍掉是不值得的。

http://www.lryc.cn/news/21758.html

相关文章:

  • QML state详解
  • 一起Talk Android吧(第五百零六回:如何调整组件在约束布局中的角度)
  • 微信投票-课后程序(JAVA基础案例教程-黑马程序员编著-第七章-课后作业)
  • duboo+zookeeper分布式架构入门
  • 黑盒测试用例设计方法-等价类划分法
  • 4.OCR文本识别Connectionist Temporal Classification(CTC)算法
  • 误删了Ubuntu/Linux的一些默认用户目录怎么办?
  • ArXiv简介以及论文提交
  • pytorch学习
  • 【OC】块初识
  • 3-2 创建一个至少有两个PV组成的大小为20G的名为testvg的VG
  • 【密码学】 一篇文章讲透数字证书
  • Linux 操作系统原理 — 内存管理 — 虚拟地址空间(x86 64bit 系统)
  • C语言深入知识——(2)指针的深入理解
  • Git使用笔记
  • 数据库管理-第五十八期 倒腾PDB(20230226)
  • 我看谁还敢说不懂git
  • Scratch少儿编程案例-算法练习-实现加减乘除练习题
  • 【离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计】
  • python网络数据获取
  • [Datawhale][CS224W]图机器学习(六)
  • aws ecr 使用golang实现的简单镜像转换工具
  • 【20230225】【剑指1】分治算法(中等)
  • 「JVM 高效并发」Java 线程
  • ADAS-可见光相机之Cmos Image Sensor
  • 【ESP 保姆级教程】玩转emqx MQTT篇③ ——封装 EmqxIoTSDK,快速在项目集成
  • Python自动化测试面试题-编程篇
  • CIT 594 Module 7 Programming AssignmentCSV Slicer
  • 链路追踪——【Brave】第一遍小结
  • Vision Transformer(ViT)