如何将用户命令添加到vi/vim中以具有多个条件来搜索内容



我们的服务器只有vi/vim来检查日志文件,我觉得在vi中搜索是痛苦和有限的。我想知道是否可以在路径中提供一个可执行文件,然后使用vi用户命令来调用它,并且该用户命令能够接受多个条件,如A=value1 && B=value2A=value1 || B=value2等,然后它在打开的vi编辑器中搜索内容,并将光标放在匹配的文本中。

如果可能的话,请描述一下步骤。

如果您的机器上有实际上Vim,您应该能够利用;快速修复";特色简而言之,您可以:

  • 向Vim提供位置列表
  • 可选地告诉Vim如何解析该列表
  • 用类似CCD_ 5或CCD_
  • 在特殊窗口中显示该列表
  • 对列表中的每一行进行批处理操作

在最简单的场景中,假设的外部程序会输出一个列表,该列表的格式是Vim已经理解的,比如:

filename.txt:3067:12:some text
filename.txt:4321:7:some text

其可以被供给";直接";至Vim:

$ vim -q <(yourcommand)
# also open the quickfix window
$ vim -q <(yourcommand) +cwindow

或者通过一些文件:

$ vim -q yourfile

这一切都可以在Vim中完成,方法是告诉它使用你的程序,而不是:grep命令的grep

set grepprg=yourcommand

和做:

:grep <your arguments>

参考文献:

:help quickfix
:help :cnext
:help :lprevious
:help -q
:help -+c
:help :cwindow
:help :grep
:help 'grepprg'
:help 'grepformat'

最新更新