Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex vim查找报告并将出现次数存储在缓冲区中_Regex_Search_Vim_Count - Fatal编程技术网

Regex vim查找报告并将出现次数存储在缓冲区中

Regex vim查找报告并将出现次数存储在缓冲区中,regex,search,vim,count,Regex,Search,Vim,Count,我得到这个部分:s/pattern//gn 使用vim报告“模式”的出现次数 但是,有没有办法将报告的数字存储在缓冲区中供以后使用呢?首先,我想你说的“缓冲区”是指“寄存器/变量” 实现这一目标有不同的方法: 国际海事组织称,外部指挥是最直接的方式 let a=system('grep -c "yourPattern" '.expand("%:p")) 因此,变量a包含计数。但是您需要有可用的grep,并且vim缓冲区应该是一个文件 使用searchpos()函数和循环。 从col1第1行调

我得到这个部分:s/pattern//gn 使用vim报告“模式”的出现次数


但是,有没有办法将报告的数字存储在缓冲区中供以后使用呢?

首先,我想你说的“缓冲区”是指“寄存器/变量”

实现这一目标有不同的方法:

  • 国际海事组织称,外部指挥是最直接的方式

    let a=system('grep -c "yourPattern" '.expand("%:p"))
    
    因此,变量
    a
    包含计数。但是您需要有可用的
    grep
    ,并且vim缓冲区应该是一个文件

  • 使用
    searchpos()
    函数和循环。 从col1第1行调用
    searchpos()
    函数,累积匹配项,直到文件/缓冲区结束。你需要实现这个循环

  • 使用redirect(
    :redir
    )将消息重定向到register,然后执行进一步的处理。因此,您可以在寄存器中的y行中有
    x个匹配项
    消息,然后将
    x
    取出

我更喜欢第一条路

:h项目
将向您显示该项目的帮助文档(功能用法/选项/命令等),如果您不了解某些命令/功能,请执行此操作


但是首先,您应该执行
:h window
,以了解vim中的缓冲区/窗口是什么。

请包括您使用的示例代码并解释问题谢谢您的回答。然而,细节远远超出了我的专业水平。请原谅我的无知。vim在屏幕底部报告点击次数。显然,该号码必须保存在某个位置(寄存器、内存?)。没有办法以一种非常简单的方式访问该位置吗?你是对的,该号码必须保存在vim的源代码中的某个地方。从vim应用程序,AFAIK,不,我们不能直接读取某处的计数。太好了。谢谢你没有误解我的评论。也许我会搬过去凑个C来解决这个问题。