vim 在内部是如何做到的,以便按下一个 `y` 不会等待 `yy` 键映射的第二个 `y`?
How did vim do internally so that pressing one `y` doesn't wait for the second `y` for the `yy` key map?
通常情况下,如果我定义需要 2 个键的键映射,按下第一个键将等待第二个键,但是像 y
这样的键会立即执行,而 yy
仍然有效。这可以用vimscript实现吗?
这就是它的工作原理。
当你按 y 时,它是等待输入,它在等待你给出动作。
如果您查看 h: y
和 h: yy
,您会看到他们说 y
猛拉 {motion} 文本到寄存器中。 y
命令实际上不会拉出文本,直到您至少按下第二个键以指示方向。 y
的典型用例更像是 y4l
将 4 个字符向右拉。
当您提供另一个 y
按键而不是动作时,这是一种特殊情况,它只是从行的开头猛拉到换行符。
通常情况下,如果我定义需要 2 个键的键映射,按下第一个键将等待第二个键,但是像 y
这样的键会立即执行,而 yy
仍然有效。这可以用vimscript实现吗?
这就是它的工作原理。
当你按 y 时,它是等待输入,它在等待你给出动作。
如果您查看 h: y
和 h: yy
,您会看到他们说 y
猛拉 {motion} 文本到寄存器中。 y
命令实际上不会拉出文本,直到您至少按下第二个键以指示方向。 y
的典型用例更像是 y4l
将 4 个字符向右拉。
当您提供另一个 y
按键而不是动作时,这是一种特殊情况,它只是从行的开头猛拉到换行符。