【问题标题】:How to disable all HTML syntax highlighting while editing a Php file in Vim如何在 Vim 中编辑 Php 文件时禁用所有 HTML 语法突出显示
【发布时间】:2017-07-25 23:33:20
【问题描述】:

我想写一个 PHP 模板来生成一些 Apache 配置文件。

为此,在编辑模板时, 我不需要在 Php 标记之外突出显示任何 HTML 语法,因为这些标记之外的原始代码是一些 Apache 配置,不是 HTML 代码。

Apache 语法和 HTML 一样,使用 <angle brackets>... 那么标准的 php.vim 语法文件会导致 一些令人不安的视觉亮点。

问题: 有没有办法使用 Vim 禁用 PHP 文件中 HTML 标记的高亮显示(同时保持 Php 语法),并且不分叉/调整原始语法文件? p>

注意: 理想的做法是将 HTML 语法替换为 Apache 配置语法(仍然在 Php 标记之外),但现在最重要的是删除这种不需要的 HTML 语法突出显示。

【问题讨论】:

  • 您可能需要一个不突出显示 HTML 的自定义 PHP 语法文件。
  • @staticsan:如果是这样,我可能会放弃它......这不是那么关键的一点

标签: php vim vim-syntax-highlighting


【解决方案1】:

这并不难做到,但如果您想使语法文件保持最新状态,可能会产生持续的维护成本。

首先,找到你的 Vim 库。在 Mac/Linux 系统上,这通常是像 /usr/share/vim/vim74/syntax/ 这样的地方。那里会有一个名为php.vim 的文件。这是包含 PHP 的所有语法高亮规则的文件。

制作一个个人语法目录,如果您还没有的话。然后复制该目录中的全局 php.vim 文件。

mkdir -p $HOME/.vim/syntax
cp /usr/share/vim/vim74/syntax/php.vim $HOME/.vim/syntax

然后修改您制作的副本。我在系统上找到的文件在顶部附近有这样的部分。

if version < 600
  unlet! php_folding
  if exists("php_sync_method") && !php_sync_method
    let php_sync_method=-1
  endif
  so <sfile>:p:h/html.vim
else
  runtime! syntax/html.vim
  unlet b:current_syntax
endif

如您所见,它在两种情况下读取/导入 html.vim 文件。您可以将这些情况注释掉(更改为 3 行):

if version < 600
  unlet! php_folding
  if exists("php_sync_method") && !php_sync_method
    let php_sync_method=-1
  endif
  " so <sfile>:p:h/html.vim
else
  " runtime! syntax/html.vim
  " unlet b:current_syntax
endif

持续的维护成本以这种形式出现:随着 Vim 的升级,全局的 php.vim 文件会定期更新。但是,如果您制作了自己的副本并被使用,则它不会获得这些更新(除非您制作并修补另一个副本)。这是否是一个问题取决于您。

【讨论】:

  • 同时我注意到原始php.vim(2016 年 12 月 11 日版本)中的某种错误:许多 Php 关键字在 在 php 标签之外突出显示!例如:PDO、Directory、Iterator... 但无论如何:我的问题解决了
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 2016-05-20
  • 2015-11-26
  • 2014-10-11
相关资源
最近更新 更多