在Vim中保存常用的正则表达式模式?

时间:2010-02-04 16:12:14

标签: vim

是否有一种简单的方法来保存常用的Regex模式,以便我可以在不同的文件之间重用它?我查看了许多日志文件,并且总是需要创建一个稍微复杂的正则表达式(这不是火箭科学,但重新输入是一种痛苦)来查找错误,因此有一种方法可以回忆起它而不必将其保存在文本中每次都将文件粘贴到搜索参数中。

5 个答案:

答案 0 :(得分:15)

把:

source ~/.regexlist.vim

进入你的vimrc。

进行搜索。决定你可能想再次使用那个。按字面输入:

:sp ~/.regexlist.vim<CR>
olet MyRegExName = '<C-R>/'<ESC>
:w<CR>
:so %<CR>
:q<CR>

<C-R> Ctrl R <CR> ENTER <ESC> ESC

下次要使用它时:

/<C-R>=MyRegExName<CR><CR>

Ctrl-R是你的朋友! Ctrl-R后跟/上拉最后一次搜索。 Ctrl-R后跟=允许您输入表达式。

答案 1 :(得分:3)

有几种方法:

  • 创建一个符合您需要的映射,并将其添加到.vimrc,例如:map /foo /[long complicated regex]。但请注意,这将使搜索文字字符串“foo”变得困难,尽管可以使用Ctrl-V转义来完成。另一种方法是为自定义正则表达式搜索使用其他一些前缀,例如: map ::foo /[complicated regex]
  • 创建一个执行所需正则表达式搜索的函数,并将其添加到.vimrc
  • 上述
  • 的某些组合

答案 2 :(得分:2)

只需按/然后向上箭头。

或创建命令以调用regexp搜索。

:command -nargs=0 Errors vimgrep "Error\s*regexp" % | cw 15

然后只是

:Errors

答案 3 :(得分:2)

如果您已开始在vim中输入命令,包括搜索或替换,则按“向上”应在您的历史记录中搜索具有相同前缀的最近使用的命令。

答案 4 :(得分:0)

创建一个文件,您计划存储正则表达式模式,并在查看日志文件时将其保存在单独的选项卡或窗口中。

要将您刚刚使用的搜索模式添加到文件中,请按字面输入:

o<CTRL-R>/

当您需要使用列表中的模式时,请移至该行并按字面输入:

yyq/p<CR>

然后,您可以切换标签/窗口,然后点击n或N进行搜索。