Regex 在vim中显示与图案匹配的所有线条
我在vim中搜索文件中的一个特定字符串,我希望显示所有具有匹配字符串的行,可能在另一个vim窗口中 目前我这样做: 搜索“字符串”Regex 在vim中显示与图案匹配的所有线条,regex,vim,Regex,Vim,我在vim中搜索文件中的一个特定字符串,我希望显示所有具有匹配字符串的行,可能在另一个vim窗口中 目前我这样做: 搜索“字符串” /string 并移动到下一个匹配字符串 n or N Bur,我要所有的线和匹配的字符串在一个地方 例如: 这是一根绳子 这里什么也没有 3这是相同的字符串 我希望第1行和第3行显示如下,突出显示string 1这里有一个字符串 3这里是评论中相同的字符串,我相信您的文件是这样的,即行号不是文本的一部分: 这里有一个字符串 这里什么都没有 这是相同的字符串
/string
并移动到下一个匹配字符串
n or N
Bur,我要所有的线和匹配的字符串在一个地方
例如:
这是一根绳子
这里什么也没有
3这是相同的字符串
我希望第1行和第3行显示如下,突出显示string
1这里有一个字符串
3这里是评论中相同的字符串,我相信您的文件是这样的,即行号不是文本的一部分:
这里有一个字符串
这里什么都没有
这是相同的字符串
您可以将其粘贴到一个命名的寄存器中(以下示例中为“a”),然后将其粘贴到一个新文件中:
:g/string/y A
:e newfile
:"ap
这让你:
这里有一个字符串
这是相同的字符串
或者,您可以使用grep
命令并添加-n
以包括行号:
:grep -n string %
1:~/tmp.txt[text]行:3/3,列:23(全部)
:!grep-nH-n string/home/christofer/tmp.txt 2>&1|tee/tmp/vHg7GcV/3
[上次更改后未写入]
/home/christofer/tmp.txt:1:这里是一个字符串
/home/christofer/tmp.txt:3:这是相同的字符串
(1/2):这是一个字符串
按ENTER键或键入命令继续
默认情况下,您将在底部的“命令缓冲区”中获得输出(不知道其正确名称),但是,例如使用:copen
:g/pattern/#<CR>
是一种过滤注释并跨包含项工作的替代方法
命令如下:
:vimgrep pattern %|cwindow<CR>
执行相同的操作,但使用外部程序。请注意,:grep
和:vimgrep
使用文件,而不是缓冲区
参考:
:help :g
:help include-search
:help :vimgrep
:help :grep
:help :cwindow
FWIW,我的插件结合了
:ilist
和quickfix窗口的功能。我认为这些行是文本的一部分。如果您使用的是linux,您可以在缓冲区上调用grep-n
,该缓冲区还提供行号。我也将尝试获取一个例子。我在Windows上使用gVim,我做了一些阅读,结果发现grep
命令是在Vim本身中实现的,应该也可以在Windows上使用。我最初想打电话给:!grep-n string%
,它使用操作系统“grep
(在我的例子中是Ubuntu),但是你可以直接删除代码>并改用Vim的grep
。查看。
:grep pattern %|cwindow<CR>
:help :g
:help include-search
:help :vimgrep
:help :grep
:help :cwindow