为什么 Vim 高亮在数学模式下对 _a 和 _b 的处理不同?

为什么 Vim 高亮在数学模式下对 _a 和 _b 的处理不同?

我没有使用 vim-latex,只是使用常规的 vim 语法高亮功能。为了确保这一点,我通过运行以下命令进行了测试:

vim -u NONE -N

我注意到,如果我处于数学模式,“f_a”将显示“_a”与“f_{a}”内部相同的颜色,但当输入“f_b”时,下划线显示为红色,而“b”与 f 的颜色相同。我注意到所有数字的行为都像 a,还有其他一些字母,包括 x、v、u 和 i。这些字母有什么特别之处?为什么语法将它们视为不同?

有没有 TeX 的风格,其中的差异是有意义的?我只熟悉 LaTeX...

答案1

Vim 的最新版本有一个新的“隐藏文本”功能。语法高亮文件包含使用此功能的代码。隐藏文本功能将一串文本折叠成单个 Unicode 字符。例如,它可以在视觉上替换\betaβ

Vim 默认提供以下下标的替换,替换字符串_X(其中X是以下字符之一)替换为 Unicode下标字符:0,,,,,,,,,,,,,,,,,(替换为垂直逗号:U + FE10 ),,,,,,,,(替换为插入符号:U + 2038 ),,,,,,,,,,,。123456789aeiou,+-/().rvx\beta\delta\phi\gamma\chi

被替换的字符将以不同的颜色显示(取决于您的配色方案和当前隐藏模式)。

要启用隐藏模式,请:set conceallevel=2在 Vim 中输入。您将看到这些替换(假设您有一个支持必要 Unicode 字符的终端字体)。当您的光标位于一行上时,隐藏的字符会显示/展开以方便编辑。用于:set conceallevel=0禁用隐藏。

Vim 有更多的上标替代品(因为更多的字体提供比下标字形更广泛的上标字形)。

当涉及到数学时,隐藏模式就变得相当有用:

\[
e^{ix} + \alpha - \beta
\]

显示为

eⁱˣ + α - β.

更直接地回答您的问题:

这些字母有什么特殊之处?语法为什么认为它们不同?

这些字母的唯一特殊之处在于,Vim 的语法高亮文件提供了使用合适的 Unicode 字形隐藏这些特定下标字母的功能。

TeX 是否有一种风格,其差异是有意义的?

不。对 TeX 来说都一样。

相关内容