使用 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+=`
如果这有帮助(并且不会破坏诸如语法高亮之类的东西,或者因为 w
和 e
等命令的更改导航而惹恼您),您可以使该设置永久适用于 verilog filetypes 放入 ~/.vim/after/ftplugin/verilog.vim
.
我检查了以下内容,标签文件路径设置正确。
我要查找的宏标记存在于标记文件中。 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+=`
如果这有帮助(并且不会破坏诸如语法高亮之类的东西,或者因为 w
和 e
等命令的更改导航而惹恼您),您可以使该设置永久适用于 verilog filetypes 放入 ~/.vim/after/ftplugin/verilog.vim
.