我想用基于希腊符号的名称隐藏变量,并将它们转换为Unicode等效符号,类似于vim-cute-python的工作原理.例如,我有这个
syntax match scalaNiceKeyword "alpha" conceal cchar=?
Run Code Online (Sandbox Code Playgroud)
在一个文件中定义,用于隐藏Scala文件,除了它过于激进外,效果很好.如果我写alphabet它然后被隐藏成为?bet,这是明显错误的.如何修改/扩展此隐藏语句,以便它只隐藏与"[_] alpha [_]"匹配的关键字,即我希望进行以下转换
alpha_1 => ?_1
alpha => ?
alphabet => alphabet
Run Code Online (Sandbox Code Playgroud)
注意:这与此问题类似,但由于我想要匹配的组环境是空格和下划线,因此它似乎稍微复杂一些.天真地定义如下所示的语法区域会使各种错误:
syn region scalaGreekGroup start="[ _]" end="[ _]"
Run Code Online (Sandbox Code Playgroud)
提前致谢!
修改模式以仅匹配由单词\n边界或下划线分隔的名称:
\n\n:syntax match scalaNiceKeyword '\\(_\\|\\<\\)\\zsalpha\\ze\\(\\>\\|_\\)' conceal cchar=\xce\xb1\nRun Code Online (Sandbox Code Playgroud)\n