<c-r> =在Vim </c-r>中意味着什么

时间:2012-06-02 12:52:40

标签: vim

我遇到了一些我不理解的语法用法:

第一个是:帮助映射:

:map <F2> a<C-R>=strftime("%c")<CR><Esc>

这个序列确实将strftime的值插入缓冲区虽然我不明白怎么做。改变不同的东西打破了它。

另一个是wiki page,它描述了如何使omnicompletion弹出菜单运行良好:

inoremap <silent> <Esc> <C-r>=pumvisible() ? "\<C-y>" : "\<Esc>"<CR>

这里也是一样。

有人可以解释这个“<C-r>=”的工作原理吗?...

2 个答案:

答案 0 :(得分:54)

<C-r>= Ctrl + R = 用于在光标处插入表达式的结果。

在编辑CSS以插入值时,我经常使用它:

width: <C-r>=147-33<CR>px;
width: 114px;

修改

没有<C-r>

=允许您在 insert 模式下插入光标处的任何寄存器的内容:<C-r>+,例如,插入我的系统剪贴板的内容。见:help i_ctrl_r

=是“表达式寄存器”。请参阅:help "=

EndEdit中

答案 1 :(得分:31)

<C-r>就像在键盘上按CTRL + R. <CR>就像打进入。您可以通过:help key-notation找到完整列表。