1

我使用 taglist() 来获取标签列表。然后我做了一些过滤,只留下一些像这样有用的:

let tttlist = taglist("^List$")
"echo ttt
let newtttlist = []
for item in tttlist
   if item['kind'] == 'i' || item['kind'] == 'c'
       call add(newtttlist, item)
   endif
endfor
echo newtttlist

但是如何在 vim 中像 :tag 和 :ptag 一样显示它们呢?

4

1 回答 1

1

我看不到使用您提到的其中一个命令来显示 tag方法,因此解决方案是在列表中的第一项上:execute:ptag/一起使用::tag

execute 'ptag' fnameescape(get(newtttlist, 0, ''))

. 此外,您无需在找到其中一个标签后处理标签列表:

let tttlist = taglist("^List$")
for item in tttlist
   if item.kind == 'i' || item.kind == 'c'
       execute 'ptag' fnameescape(item.name)
   endif
endfor

. 如果您的意思是别的,请在此处发布您将如何制作:ptag/:tag显示标签列表:根据文档和观察到的行为,他们所做的只是跳转到第一个匹配项。

另请注意:如果字典的键仅包含拉丁字母、数字和下划线,那么您可以访问它dict.key而不是dict['key']. 当字典用于传递结构化数据时,它几乎总是正确的。

于 2012-05-31T17:31:49.710 回答