6

我想隐藏具有基于希腊符号名称的变量并将它们转换为它们的 Unicode 等效符号,类似于vim-cute-python 的工作方式。例如,我有这个:

syntax match scalaNiceKeyword "alpha" conceal cchar=α

在一个文件中定义,用于隐藏在 Scala 文件中,除了过于激进之外,效果很好。如果我写alphabet它然后被隐藏成为αbet,这是明显错误的。

如何修改或扩展此隐藏语句,使其仅隐藏匹配的关键字[ _]alpha[ _]?换句话说,我想要以下转换:

alpha_1 => α_1
alpha => α
alphabet => alphabet

注意:这与此问题类似,但似乎稍微复杂一些,因为我要匹配的组环境是空格和下划线。像下面这样天真地定义一个语法区域会使事情发生各种各样的错误:

syn region scalaGreekGroup start="[ _]" end="[ _]"

提前致谢!

4

2 回答 2

3

修改模式以仅匹配由单词边界或下划线分隔的名称:

:syntax match scalaNiceKeyword '\(_\|\<\)\zsalpha\ze\(\>\|_\)' conceal cchar=α
于 2012-05-08T02:56:48.783 回答
0

有一个名为的脚本unilatex.vim定义imaps\alpha => α打开/写入和保存时的反向转换。我将它用于乳胶代码并对其进行了修改以放弃反向转换,因为我的乳胶编译器能够正确执行 unicode。我不知道 scala 源代码是否可以是 unicode,但如果可以的话,你可以看看我的版本

于 2012-05-08T09:28:08.053 回答