我只知道使用寄存器的一个实例是通过CtrlR*,从中我从剪贴板粘贴文本。
寄存器的其他用途是什么?如何使用它们?
你所知道的关于VI寄存器的一切(让我们关注VI 7.2)——分享给我们。
我只知道使用寄存器的一个实例是通过CtrlR*,从中我从剪贴板粘贴文本。
寄存器的其他用途是什么?如何使用它们?
你所知道的关于VI寄存器的一切(让我们关注VI 7.2)——分享给我们。
当前回答
Q5记录编辑到寄存器5(下一个q停止记录) :reg显示所有寄存器和其中的任何内容 @5执行注册5宏(已录制的编辑)
其他回答
我认为秘密的大师寄存器是表达式= register。它可以用于创建映射。
:inoremap \d The current date <c-r>=system("date")<cr>
您可以将它与您的系统结合使用,或者从自定义VimL函数等获得响应。
或者只是一些特别的东西
<c-r>=35+7<cr>
其他有用的寄存器:
“*”或“+ -”系统剪贴板的内容
/ -最后一次搜索命令
:—最后一个命令行命令。
注意,对于vim宏,您可以编辑它们,因为它们只是记录宏时使用的击键列表。因此,您可以将宏写入文本文件(使用“ap”来编写宏a)并编辑它们,并使用“ay$”将它们加载到寄存器中。存储有用宏的好方法。
在带@的命令中使用寄存器。例如:
echo @a
echo @0
echo @+
让他们来指挥:
let @a = 'abc'
现在ap将粘贴abc。
来自vim的帮助页面:
CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_<C-R>*
Insert the contents of a numbered or named register. Between
typing CTRL-R and the second character '"' will be displayed
<...snip...>
Special registers:
'"' the unnamed register, containing the text of
the last delete or yank
'%' the current file name
'#' the alternate file name
'*' the clipboard contents (X11: primary selection)
'+' the clipboard contents
'/' the last search pattern
':' the last command-line
'-' the last small (less than a line) delete
'.' the last inserted text
*c_CTRL-R_=*
'=' the expression register: you are prompted to
enter an expression (see |expression|)
(doesn't work at the expression prompt; some
things such as changing the buffer or current
window are not allowed to avoid side effects)
When the result is a |List| the items are used
as lines. They can have line breaks inside
too.
When the result is a Float it's automatically
converted to a String.
See |registers| about registers. {not in Vi}
<...snip...>
一个被忽视的寄存器是'。'点寄存器,它包含最后插入的文本,无论它是如何插入的,例如ct](更改直到])。然后你意识到你需要将它插入到其他地方,但不能使用点重复方法。
:reg .
:%s/fred/<C-R>./