vim - 有时 Vim 开始忽略 Ctrl 键上的映射
问题描述
最近,当通过 ssh 在 tmux 中使用 Vim 时,有时 Vim 会开始忽略我所有以 Ctrl 开头的映射:例如<C-P>
,我已绑定到 CtrlP 插件。相反,Vim 运行内置操作(在这种情况下,在文件中向上移动行)。我不怀疑正确的按键正在到达Vim,因为它使用了正确的内置操作<C-P>
(使用从 tmux:send-keys
发送ctrl-p
也会导致<C-P>
vim 中的内置运行,而不是映射)。
我所有不涉及控制键的映射仍然有效。例如,我可以这样做:
nnoremap p :echo "test"<cr>
, 和紧迫的p
回声test
但紧随其后
nnoremap <c-p> :echo "test"<cr>
, 和按下CTRL-P
不会回显测试,它将光标向上移动一行。
重新启动 Vim 总能解决问题,但在某些时候,我所做的某件事会导致问题再次出现。我最近主要通过 ssh 在 tmux 中工作,所以我不能 100% 确定其中任何一个是否是问题(尽管我想我记得在 tmux 中的 Vim 中发生过这种情况,而不是通过 ssh),但如上所述,我相信直接从 tmux 使用 send-keys 作为测试可以确保 vim 获取实际的ctrl-p
键码。同样,<C-V><C-P>
在插入模式下确实插入^P
。
请注意,虽然我在ctrl-p
这里用作示例,但由于它是我在实践中实际使用很多的键,这适用于任何控制键映射。
是否有某种我不知道的 Vim 状态导致这种情况发生?这可能是终端问题吗?我的下一步是什么?
解决方案
推荐阅读
- gravity-forms-plugin - 如何修复重力形式错位的标题
- reactjs - Formik Uncaught TypeError:无法读取未定义的属性“getFieldProps”
- javascript - 在选择输入之外单击时更改状态
- ssl - Hyperledger Fabric 第 3 方 TLS CA 设置或禁用 TLS
- reactjs - 如何在 React 中将 useState 值发送给 Parent
- android - 异步 REST-API 异常处理
- javascript - Gitlab Ci 构建失败并出现 Nginx 错误响应 413 Request Entity Too Large
- c# - dotnet C# - 为什么 GC 不释放内存?
- javascript - 用于 Fb Messenger 批量删除的脚本不起作用
- java - 需要使用 AND 和 OR 运算符的 DetachedCriteria 查询