gpt4 book ai didi

vim - 根据已经输入的内容,对字母进行不同的映射

转载 作者:行者123 更新时间:2023-12-04 18:20:20 26 4
gpt4 key购买 nike

我有一个自定义键盘布局。所以我有 vim 命令 h , j , kl绑定(bind)到其他字母,例如我绑定(bind)了je ,像这样:nmap e j .

这样做的问题是,在运算符(operator)挂起模式下,我有时想要 e表示j , 有时我希望它表示 e .例如,当我按 de 时我希望它的意思是 dj , 但是当按下 te我希望它的意思是 te .

有没有办法解决这个问题?

我可以做omap de dj但如果我想通过键入 d3e 来删除更多行,那将不起作用.如果有(我不这么认为,或者有吗?)某种方式来匹配数字,例如用#,那么我可以像 omap d#e d#j .或者也许有一些方法可以根据我已经在运算符(operator)挂起模式下输入的内容来更改映射。

最佳答案

  • 您几乎不应该考虑使用 *noremap ,而不是 *map .
  • nnoremap e j不可能破坏te .也不能onoremap e j : t不是运算符,它不会调用运算符挂起模式。
  • omap de djde 无关在正常模式下按,您应该按 dde调用此映射。和nnoremap e j与改变de 的含义无关: 你需要onoremap e j此处(运算符(operator)挂起模式由运算符(operator) d 调用,但运算符(operator)必须在正常模式下键入。它都不是调用模式的一部分)。
  • 当您需要 noremap 时,基本移动键的重新映射是极少数情况下的完美示例, 没有前导 n , o , v或者其他的东西。尝试做
    noremap e j

    对于您要重新映射的所有键,这应该足够了。
  • 模式开始时不会发生重映射,因此无需执行 onoremap 3e 3j . onoremap e j还将启用 d3e -> d3j .和noremap e j相当于
    nnoremap e j
    onoremap e j
    vnoremap e j
  • 关于vim - 根据已经输入的内容,对字母进行不同的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10822368/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com