假设我有3个具有以下内容的idefile文件xfile1.txt,yfile2.txt和zfile3.txt。
mane
hind-leg
shell
我还有一个文件test.txt,如下所示。
xfile1.txt
{
lion mane
}
yfile2.txt
{
rabbit hind-leg // line 8
}
zfile3.txt
{
turtle shell
}
我想通过定义q, my-macro-key, my-wanted-key-sequences, q
并将其与@, my-macro-key
一起用于以下操作来制作宏。我想要做的是,当我的光标被放置在hind-leg
文件的第8行的test.txt
中间时,当我按下@, z
之类的宏键时,它打开yfile2.txt并将光标放在新打开文件中hind-leg
的开头
因此,为了记录宏,我将光标放在文件test.txt中的后腿中间,然后按下q,z,b,*,ctrl-o,?,^,{,enter,k,g,f,*
(开始宏记录for charter z
,转到单词的开头,向前搜索,回来,反向搜索^{
,上一行,输入文件(yfile2.txt),再次搜索模式。对于那些不知道前一个序列是什么的人......)。但最后一次*
搜索' ^ {'因为这是我在此之前使用的最后一次搜索模式。我想在新打开的文件中使用搜索模式hind-leg
在这种情况下,如何使用旧的搜索模式hind-leg
?
答案 0 :(得分:2)
您可以通过按↑在命令行中调用以前的搜索模式。
或者,如果您想要选择以前的搜索模式列表,可以通过q/
输入命令行窗口。这是一个完整的Vim缓冲区,因此您可以使用j
/ k
进行导航,甚至可以使用/
进行搜索,并以常规方式编辑以前的模式。按<Enter>
选择当前行的模式。
您可以通过"/p
("
:选择寄存器,/
:搜索模式寄存器,p
aste)将当前搜索模式粘贴到(暂存)缓冲区中。不幸的是,你不能简单y
回到搜索寄存器,但这样做:
:let @/ = getline('.')
或者,您也可以使用其他寄存器来存储模式。例如:
:let @a = @/
" Recall later
:let @/ = @a
还有histget('/')
功能可以访问以前的搜索模式。