使用 ctags 跳转到系统 verilog 宏 `define in VIM 时出现问题

problem in jumping to system verilog macros `define in VIM using ctags

我检查了以下内容,标签文件路径设置正确。

我要查找的宏标记存在于标记文件中。 task/function/parameters 等工作没有打嗝。我只有正则表达式有问题。

ctags 文件中的表达式是

1. --regex-SystemVerilog=/^\s*`define\b\s*(\w+)/`/d,define/ 
2. --regex-systemverilog=/^[ \t]*`define[ \t]*([a-zA-Z_0-9]+)/`/d,define/

两个选项都不行。

:tag `altuvm_test_arg 有效时,但相应的 CTRL-] key doesn't, this often is caused by incompatible 'iskeyword' 定义,因此实际传递给 :tag 的是 altuvm_test_arg(没有前导反引号)。

您可以使用 * 命令检查关键字匹配的范围(当在这样的标签上时),该命令会突出显示光标下的相同关键字。如果排除反引号,请尝试将反引号添加到关键字字符范围:

:setlocal iskeyword+=`

如果这有帮助(并且不会破坏诸如语法高亮之类的东西,或者因为 we 等命令的更改导航而惹恼您),您可以使该设置永久适用于 verilog filetypes 放入 ~/.vim/after/ftplugin/verilog.vim.