我正在使用 vim-clojure-static,一个 Clojure 插件。我可以通过执行以下操作将自己的函数和宏添加到语法组:
syntax keyword clojureMacro defsystem
但是在 Clojure 中,在需要(导入)来自其他命名空间的代码之后,必须对函数和宏进行命名空间限定。例如,如果我需要命名空间my-namespace并且defsystem在 中my-namespace,我将不得不通过ny-namespace/defsystem. 但是由于需要另一个命名空间,因此可以将命名空间名称缩短(实际上是重命名),例如,my/defsystem.
所以,问题是:syntax keyword clojureMacro defsystem如果defsystem命名空间合格,则不起作用,例如my/defsystem. 命名空间限定符可以是任何东西。我该如何解决?正则表达式'\m[a-z.+\-*_!?]\+\/'匹配命名空间限定符。所以基本上我想要匹配的代码'\m[a-z.+\-*_!?]\+\/'紧跟一个clojureMacro,就像整个事情是一个clojureMacro一样突出显示。