VIM:不要在HTML链接中下划线领先的空格

标签 vim

这个问题已经在这里有了答案:




已关闭8年。




Possible Duplicate:
Why is vim drawing underlines on the place of tabs and how to avoid this?



在CentOS 5.x上的VIM 7.0中缩进PHP代码时,HTML链接显示为下划线。这非常方便,但是在某些地方,我已经在HTML中缩进了PHP代码,并且整个缩进都带有下划线:
            <li class="picture">
________________<a href="<?=$linkUrl?>">
____________________<img src="/<?=$img['source']?>" alt="Picture"/>
____________________<? if ($someCondition): ?><span class="info"><?=$img['info']?></span><? endif; ?>
________________</a>
            </li>

有什么方法可以告诉语法荧光笔忽略HTML链接中的行首空格吗?

最佳答案

我设法通过修改$VIMRUNTIME/syntax/html.vim实现了这一点。复制到~/.vim/syntax/html.vim(在Windows上.vim称为vimfiles),并替换原始语法定义

syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc

具有以下内容:
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 keepend contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc
syn match htmlLinkText contained contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "^\s*\zs.\{-}\ze\s*$"
syn match htmlLinkText contained contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "\S.\{-}\ze\s*$"

再往下走,换
HtmlHiLink htmlLink                    Underlined


HtmlHiLink htmlLinkText                Underlined

瞧!基本上,这引入了另一个包含的语法组htmlLinkText,它与前导和尾随空白不匹配,而是对其进行了突出显示。

关于VIM:不要在HTML链接中下划线领先的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150659/

相关文章:

php - 从 vim 中运行 PHP 文件

vim - Vim 中当前行号的对齐方式

vim - 有没有办法让 yanks 在 vi​​m 中可视化?

regex - Vim 正则表达式重复行分组

vim - 运行替代命令后清除选择

vim - 我应该按什么键来激活 vim 中的 c_CTRL-D?

vim - 为什么IdeaVim-EasyMotion plugin for pycharm选择光标之间的文本而不是移动光标

vim - 在不从启动它的终端获取焦点的情况下启动 gvim

vim - 带 * 的双 vim 环绕

c++ - 将 Vim 设置为基本的 C++ 编辑器