我们的服务器只有vi/vim来检查日志文件,我觉得在vi中搜索是痛苦和有限的。我想知道是否可以在路径中提供一个可执行文件,然后使用vi
用户命令来调用它,并且该用户命令能够接受多个条件,如A=value1 && B=value2
、A=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'