【问题标题】:Why can't I change vim syntax highlighting via local vimrc file?为什么我不能通过本地 vimrc 文件更改 vim 语法突出显示?
【发布时间】:2015-09-26 04:57:08
【问题描述】:

我正在尝试通过将附加指令放入由https://github.com/embear/vim-localvimrc 插件管理的本地配置$project/.lvimrc 来自定义vim 突出显示。

不幸的是,似乎命令像

syntax match Operator "\<MYOP\>"

位于.lvimrc 的位置会被 vim 默默忽略。在命令行中键入命令按预期工作。来自.lvimrc 的其他命令也可以使用。那么什么可能会阻止 vim 正确解释本地突出显示呢?

【问题讨论】:

    标签: vim syntax highlighting


    【解决方案1】:

    这可能是加载顺序的问题,即您的 .lvimrc 已加载,然后文件类型语法被加载并覆盖 .lvimrc 语法命令。您可以通过在两个文件中包含 echom 语句来检查。

    还要注意,本地 vimrc 不是自定义语法高亮的标准方式。来自Vim FAQ 24.11

    You should not modify the syntax files supplied with Vim to add your
    extensions. When you install the next version of Vim, you will lose your
    changes. Instead you should create a file under the ~/.vim/after/syntax
    directory with the same name as the original syntax file and add your
    additions to this file.
    
    For more information, read 
    
        |mysyntaxfile-add|
        |'runtimepath'|
    

    【讨论】:

    • 感谢您的回答。我找到了一种更好的调试此类问题的机制:-V 命令行选项。例如,使用vim -V13trace file_to_edit 运行Vim 会将调用跟踪记录到详细级别为13 的trace 文件
    【解决方案2】:

    这是因为https://github.com/embear/vim-localvimrc 插件默认在沙箱中启动本地文件。沙箱中不允许使用语法命令(至少在我的设置中),因此引发了异常。出于某种原因,Vim 会默默地处理此类异常。

    就我而言,以下修改形成了解决方案:

    1. 通过将let g:localvimrc_sandbox = 0 添加到主 .vimrc 文件来禁用 localvimrc 沙盒
    2. 在本地vimrc中添加set conceallevel=2

    【讨论】:

      猜你喜欢
      • 2016-05-13
      • 2014-10-08
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      相关资源
      最近更新 更多