gvim Systemverilog 语法匹配:有没有办法匹配 `ifdef `ifndef `else 和 `endif

gvim Systemverilog syntax matching :is there way to match `ifdef `ifndef `else and `endif

我使用了标准的 SystemVerilog 语法包,但无法匹配(使用 % 在其间移动光标)这些字符串。这是在 Vim(https://www.vim.org/scripts/script.php?script_id=39) 中 matchit 函数的上下文中。 问题似乎出在反引号上。

我试过了:

\u0060

`ifdef\>|`ifndef\>:`endif\>,

但它不起作用。

我假设您有一个如下所示的文件:

stuff
`ifdef
    some code
`endif
stuff

当光标在 `ifdef(或 `ifndef)上时,您想使用 % 跳转到 `endif 然后返回 `ifdef 如果您按下% 再次。我还假设您正在使用 matchit 插件。

解决方案:

:let b:match_words='`ifdef\>\|`ifndef\>:`endif\>'

请注意 | 必须使用反斜杠进行转义。另外,您需要引号 '。所以反引号不是问题。