vim - Vim delete word 有时会进入插入模式?
问题描述
看似随机,当我按下dw删除一个单词时,它将进入插入模式而不是停留在正常模式。我无法弄清楚这个开关背后的逻辑,它变得非常烦人
我首先在 VS Code Vim 扩展上注意到了这一点。然后我去了 Vim 本身,发现它也在做这个异常。这也适用于多个键盘和多台计算机。
请注意,我安装 vanilla Vim 是通过 Git for Windows,通过 cmder。
这有什么押韵或理由吗?如果是这样,它是什么以及它为什么这样做?
编辑:原来我实际上是在打cw而不是dw. 感谢 mMontu 帮助我解决了我的心理问题。哈哈
tl; dr:没有错,只是一个EBKAC
错误。
解决方案
正如评论中所指出的,这是在完全不同的编辑器上发生的。我的猜测是您(或您的键盘)正在插入其他命令。
您可以保持recording
打开状态,当您再次注意到问题时,您可以检查发送到 vim 的键:
qa -> start recording on register a
<use vim until the issue happens>
q -> stop recording
:register a -> list the keys recorded
另一种选择是将所有键入的密钥保存在一个单独的文件中(如果需要很长时间才能重现问题,这可能会更好:
vim -w script file.txt ...
:help -w
有关此方法的更多详细信息,请参见:help 26.4
.
值得尝试在没有任何设置或插件的情况下重现该问题,
vim -u NONE -U NONE -N -i NONE
,如 中所述:help faq-2.5
。在 Windows 上,您需要打开 cmd.exe 并输入类似<path to executable>/vim.exe -u NONE -U NONE -N -i NONE
(或 gVim.exe)的内容。
您还提到从 Git 安装 Vim。如果一切都失败了,请检查Vim 网站上提供的二进制文件是否也会发生这种情况。
推荐阅读
- reactjs - TypeScript 警告:未找到导出,重新导出为(可能的导出)
- c# - 如何避免Winforms c#中的Reflected_xss_all_clients漏洞
- r - 读取带引号和正则表达式 R 的 csv 文件
- javascript - 如何为数组中的每个对象添加一个字段,并使用 react 和 javascript 将该结果数组推送到另一个数组?
- firebase - 在颤振中执行热加载之前无法加载资产
- javascript - 根据第一个位置的字符串长度删除数组数组中的重复项。JS
- .net - 我在 .csproj 中的引用(路径)是否有问题
- c - 我想从字符串中删除空格以检查它的palendrome,但它不断在C中添加字母
- c++ - 如何使用 SetProps 设置多值属性
- mysql - Mysql JOIN 条件对另一个 JOIN 的语句结果