我的代码如下。
let l:foundtag = search("<.>")
echo l:foundtag
此代码将返回找到标签的行号。
使用上面的代码示例,我希望它返回字符串“
”(或它找到的任何其他标签)。有什么方法可以获取通过搜索找到的实际字符串,而不仅仅是使用Vimscript在其中找到的行号?
答案 0 :(得分:3)
echo getline(search("<.>"))
如注释中所述,如果您只想要第一个找到的标签,则是可能的。
另外,您可以使用:
split(execute("g/<.>/p"), "\n")
但是请注意,这两个函数将返回整行。似乎您只需要标签。然后,您必须将其包装在matchstr
命令中。
echo matchstr(getline(search("<.>")), "<.>")
还请注意,这只会找到带有单个字符的标签。如果要查找更长的标签,例如<div>
,则必须使正则表达式适应"<\\w*>"