如何在 Vim 中编辑 Php 文件时禁用所有 HTML 语法突出显示
How to disable all HTML syntax highlighting while editing a Php file in Vim
我想编写一个 Php 模板来生成一些 Apache 配置文件。
为此,在编辑模板时,
我不需要在 Php 标签之外突出显示任何 HTML 语法,因为这些标签之外的原始代码是一些 Apache 配置, 而不是 HTML代码。
Apache 语法,以及 HTML,使用 <angle brackets>
... 然后标准 php.vim
语法文件导致
一些令人不安的视觉亮点。
问题: 有没有办法在 Php 文件中禁用 HTML 标签的突出显示(同时保持 Php 语法),使用 Vim,并且不分叉/调整原始语法文件?
注意: 理想的做法是用 Apache 配置语法(仍在 Php 标签之外)替换 HTML 语法,但现在最重要的是是删除这个不需要的 HTML 语法突出显示。
这并不难做到,但如果您想使语法文件保持最新,可能会产生持续的维护成本。
首先,找到您的 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
如您所见,有两种情况 reads/imports 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 模板来生成一些 Apache 配置文件。
为此,在编辑模板时, 我不需要在 Php 标签之外突出显示任何 HTML 语法,因为这些标签之外的原始代码是一些 Apache 配置, 而不是 HTML代码。
Apache 语法,以及 HTML,使用 <angle brackets>
... 然后标准 php.vim
语法文件导致
一些令人不安的视觉亮点。
问题: 有没有办法在 Php 文件中禁用 HTML 标签的突出显示(同时保持 Php 语法),使用 Vim,并且不分叉/调整原始语法文件?
注意: 理想的做法是用 Apache 配置语法(仍在 Php 标签之外)替换 HTML 语法,但现在最重要的是是删除这个不需要的 HTML 语法突出显示。
这并不难做到,但如果您想使语法文件保持最新,可能会产生持续的维护成本。
首先,找到您的 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
如您所见,有两种情况 reads/imports 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 文件。但是,如果您制作了自己的副本而正在使用,则它不会获得这些更新(除非您制作并修补另一个副本)。这是否是一个问题取决于您。