在Vim中更改Python for循环的颜色

3 投票
3 回答
1114 浏览
提问于 2025-04-17 10:51

我刚开始学习Python,正在用MacVim这个编辑器,配上Jellybeans的配色方案。当我写Python的for循环时,'for'这个词是蓝色的,而'in'这个词却没有颜色。我看到其他主题里这两个词都是同样的颜色。我想知道怎么修改Jellybeans主题,让它们的颜色一样。

这里有张图片可以说明我的意思:
图片显示<code>in</code>没有高亮

3 个回答

0

如果你想在Python中只改变循环的颜色,可以在设置完配色方案后,把以下内容添加到你的.vimrc文件里。

autocmd FileType python hi Repeat guifg=#hexnumber

在这里,#hexnumber是你想要改变的颜色的代码,你只需要把“Repeat”替换成“operator”。

补充说明:

我可能误解了你的问题。循环在高亮组中叫“repeat”,而“in”则在高亮组“operator”里。它们都属于“statement”这个组。所以如果你的配色方案里只设置了“statement”,你就需要自己设置“Repeat”和“operator”的颜色。

1

有几种方法可以做到这一点。你能给我一个链接,告诉我你从哪里下载的那个叫做 Jellybeans 的配色方案吗?

我首先会查看一下这个配色方案里,是否有什么东西把 "in" 这个元素的颜色改成了和 "for" 这个元素不一样的颜色。如果里面没有什么特别的设置,那可能就是和 Python 的语法高亮有关。

不过在这种情况下,其他配色方案也应该会有类似的表现。

3

Vim的Python语法文件 定义了 in 作为 pythonOperator 语法组的一部分。这个 pythonOperator 组是 链接到 内置的 Operator 组,而这个 Operator 组(默认情况下)又链接到 Statement

而Jellybeans则 Operator 直接链接到 Normal,这样可以得到没有颜色的符号运算符(比如 +* 等),而不改变 Statement 的颜色。

如果直接从 pythonOperatorStatement 添加一个特殊的链接,就可以恢复颜色。


总结一下 我修复了这个问题。可以从 GitHub仓库 下载一个新的版本。

撰写回答