vim - 想要地图滚动以前的冒号命令
问题描述
我正在尝试映射<S-j>
以滚动以前的冒号命令。所以<S-j>
代替:
and <Up>
。
nnoremap <S-j> :<Up>
这个绑定的问题是滚动第二个最后一个冒号命令实际上是:<Up><Up>
,但如果你按<S-j>
两次你会得到:<Up>:<Up>
。
我如何正确映射它,以便它:<Up>
在命令栏中没有输出<Up>
,如果命令栏中已经有文本,则输出
解决方案
我看不到你的行为。如果我按两次(<S-j>
顺便说一句,这只是一种令人费解的说法J
),我会得到前一个命令行加上文字字母J
。您的命令是为正常模式定义的;由于:
在右侧,它将以命令行模式结束。J
=<S-j>
没有映射到那里(至少不是由):nnoremap
。
为了能够重复J
,您必须为命令行模式定义一个附加映射:
:cnoremap <S-j> <Up>
这省略了:
, 因为您已经在命令行中。
但是,我不建议这样做,因为它会让您无法直接输入大写字母 J(您仍然可以通过 输入它<C-v>J
,或者如您所说,<C-v><S-j>
)。您最好切换到使用不可打印字符(例如<C-j>
)的映射。
推荐阅读
- python - Pyspark - 与 SparkContext 相关的错误 - 没有属性 _jsc
- postgresql - 使用 Postgres LTREE 时如何将参数传递给 JPA?
- amazon-web-services - AWS EC2 t2.small 实例 CPU 利用率每天都会定期达到 100%
- powershell - 删除集群资源依赖:SQL Server 故障转移集群
- spring-boot - SpringBoot:杰克逊 2.9.7 -> 杰克逊 2.9.8+
- ruby-on-rails - 发布请求后访问 URL 中的旧获取参数
- dialogflow-es - Dialogflow 接收所有意图的置信度分数
- kubernetes - 在 Kubernetes 上使用 Helm 创建服务帐户时出错
- python - Python 或 R 数据帧到 unix 服务器
- angularjs - 动态地将时区偏移量应用于高图