2012-06-02 32 views
37

我遇到了许多这样的语法用法,我不明白传来:什么<c-r> =意味着Vim的

首先是:帮助映射:

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

这个顺序确实插入尽管我不明白如何将strftime的值存入缓冲区。改变到不同的东西打破它。

另一个是在维基page介绍如何使omnicompletion弹出菜单中运行良好:

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

同样的事情在这里。

谁能解释一下这个 “<C-r>=” 的事情是如何工作的?...

回答

47

<C-r>=,或Ctrl键 + - [R=用于插入在光标的表达的结果。

我编辑CSS时插入值,用了很多:

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

编辑

<C-r>,没有=,使您可以在光标同时插入任何寄存器的内容留在插入模式:<C-r>+,例如,插入我系统剪贴板的内容。见:help i_ctrl_r

=是“表达寄存器”。见:help "=

EndEdit中

+0

谢谢罗曼尔,我主要是在C-r的意思是正常模式下的“重做”,现在我理解了这件事! – izhak

+1

在c-r上得到你想要的帮助':help c_ctrl-r'(即第二个下划线应该是连字符) – ErichBSchulz

30

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

+2

我知道这是一个很初级的问题,但是,当你:帮助关键符号,它把你的文档。然后如果我按下Q,它会将我带到Ex模式。如果我按下可视化界面,它会将我恢复到正常模式,但它让我回头看看文档。我只想回到编码我的原始python文件,我该如何回到它?非常感谢你的原始帖子! :D – Pinocchio

+1

我想我的问题是我该如何回到我的原始文件并退出文档? – Pinocchio

+2

哦,我发现如何做到意外!要退出文档,只需按:然后q。即因为它只是在正常模式下执行:q将退出文档而不是实际的文件。 :) – Pinocchio