为什么一些Vim映射包括结肠后的<CU>?

Kev*_*vin 27 syntax vim

我试图弄清楚映射命令的语法,比如onoremap,在vim中.

特别是,我对手册中的这一行感到困惑,关于使用<C-U>:

CTRL-U(<C-U>)用于删除Vim可能插入的范围.

有人可以解释一下吗?

qqx*_*qqx 40

这不是onoremap命令语法的一部分,即解释特定映射的作用.该映射是:

onoremap <silent> F :<C-U>normal! 0f(hviw<CR>
Run Code Online (Sandbox Code Playgroud)

因此,当F运算符挂起时使用密钥时,vim将使用onoremap命令的下一个参数中的位替换它.首先是a :开始ex模式命令.如果在使用映射时存在可视选择,则vim将自动插入范围,'<,'>以便以下ex命令将应用于可视选择,使命令行看起来像:

:'<,'>
Run Code Online (Sandbox Code Playgroud)

<C-U>在映射告诉Vim后:进入在Control+ U组合应该用来清除命令行,消除了自动插入范围离开命令行看起来像:

:
Run Code Online (Sandbox Code Playgroud)

然后使用映射的其余部分.

您可以通过使用V开始逐行视觉选择,然后:开始输入命令来自己看到这一点.范围将显示,然后您可以使用Control+ U来清除它,就像示例映射一样.

包含该映射的vim帮助部分解释了其余部分.