syntax - 为什么有些 Vim 映射在冒号后包含 <C-U>?

标签 syntax vim

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

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

The CTRL-U (<C-U>) is used to remove the range that Vim may insert.



有人可以解释一下吗?

最佳答案

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

onoremap <silent> F :<C-U>normal! 0f(hviw<CR>

所以,当 F当操作符挂起时使用 key,vim 会用 onoremap 的下一个参数中的位替换它。命令。以 : 开头开始 ex模式命令。如果使用映射时有可视化选择,vim会自动插入范围'<,'>使以下ex命令将应用于视觉选择,使命令行看起来像:
:'<,'>
<C-U>在映射中告诉vim 在: 之后输入 Control+U 组合应该用于清除命令行,消除自动插入的范围,使命令行看起来像:
:

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

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

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

关于syntax - 为什么有些 Vim 映射在冒号后包含 <C-U>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830874/

相关文章:

c - 在具有大型 C 文件的 vim 中启用语法和语法折叠会使完成变慢

python - 在 Python 3 中使用多个输入变量

c++ - 用于构造 C++ 程序以确定范围的作业 Build 中的错误

vim - 创建新折叠时阻止 Vim 打开所有后续关闭的折叠

css - 为 csslint 消息寻找 vim efm

vim - 让 Sublime 尊重 Vim 语法高亮提示

bash 大括号扩展不适用于零填充或增量

C 指针减法

perl - 哈希键中哪些字符有效?

Vim:对于多个文件:复制所有文本,替换并粘贴