【问题标题】:Vim syntax highlighting 'else:' for Python用于 Python 的 Vim 语法高亮显示 'else:'
【发布时间】:2010-11-26 10:58:10
【问题描述】:

我对 Vim 中默认的 python 语法高亮感到恼火。

它没有正确突出显示else: 语句。 如果我在else 和冒号: 之间有一些空格,Vim 只会突出显示 else 语句,所以 else : 有效,但 else: 无效。

它必须很容易修复。

我正在使用 Vim 7.2

【问题讨论】:

    标签: python vim syntax-highlighting vim-syntax-highlighting


    【解决方案1】:

    在我的 ~/.vim/syntax/python.vim 文件中,我有一行

    syn keyword pythonConditional   else:
    

    解决了这个问题。

    【讨论】:

      【解决方案2】:

      这会定期弹出,我已经把它放在我的 vimrc 中:

      " No seriously, else: is the same as else
      autocmd BufEnter,BufRead,BufNewFile *.py    set iskeyword-=:
      

      【讨论】:

      • 但是,这意味着冒号也不会被突出显示。人们可能喜欢这个事实,也可能不喜欢这个事实。
      • 我喜欢这个答案。如果您在光标下搜索“*”,您不希望它匹配“:”。
      【解决方案3】:

      我的 vimrc 文件中有以下语句。这使得 else: 被标记为一个词。删除 else: 语法突出显示效果很好。

      set iskeyword+=:

      【讨论】:

      • 要获得类似的效果,您可以只为冒号添加一个语法规则,然后链接关键字的突出显示。
      • 您确定命令正确吗? +=: 对我没有影响,-=: Mark Roberts 提到过。
      • 澄清一下,set iskeyword+=: 是要删除的违规行
      【解决方案4】:

      注意文件在

      /usr/share/vim/vim72/syntax/python.vim
      

      由于某种原因不是最新的。

      http://www.vim.org/scripts/script.php?script_id=790获取最新版本的语法高亮文件

      【讨论】:

      • 结合 Mark Roberts 的回答确实带来了变化。
      【解决方案5】:

      启用文件类型的东西,以便自动设置。 我在这里为 vim 设置了 python 自动缩进和语法高亮设置: http://www.pixelbeat.org/settings/.vimrc

      【讨论】:

        【解决方案6】:

        它应该默认工作。

        寻找类似这样的文件:

        /usr/share/vim/vim72/syntax/python.vim
        

        那里应该有一行看起来像这样:

        syn keyword pythonConditional   if elif else
        

        如果没有,请进一步调查。 elif 有效吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-08-16
          • 2015-04-24
          • 2016-05-07
          • 2010-09-08
          • 2013-05-29
          • 1970-01-01
          • 2022-01-12
          • 2012-12-04
          相关资源
          最近更新 更多