Vim 中超过 80 个字符的高亮行不适用于 php

Posted

技术标签:

【中文标题】Vim 中超过 80 个字符的高亮行不适用于 php【英文标题】:Highlight lines longer than 80 characters in Vim doesn't work with php 【发布时间】:2013-05-22 09:22:23 【问题描述】:

我想用 Vim 识别超过 80 个字符的行,我找到了这个解决方案:

match ErrorMsg '\%80v.\+'

这适用于 html 文件或 .vimrc 文件,但不适用于 php 文件。我也直接在一个php文件中尝试过,它也没有工作

/\%>80v.\+

有什么建议可以找出问题吗?

【问题讨论】:

我不明白为什么您的/ 搜索与文件类型有关。你确定你的 php 文件有超过 80c 的行吗?您是否也尝试将您的工作 html 重命名为 php 并再次测试?您的 php 文件类型是否有特殊设置,覆盖搜索突出显示? 不知何故我解决了这个问题。可能我有一些与此冲突的插件,但我仍然不确定是哪个 【参考方案1】:

:match(以及相关的:2match:3match)的问题在于只能有一种模式;以下命令清除前一个。 (这就是引入matchadd() 函数的原因。)

你可以检查你的定义(它有'id': 1)是否仍然有效

:echo getmatches()

【讨论】:

【参考方案2】:

这是一个更灵活的解决方案,可以使用可切换功能仅突出显示超过 80 个字符的字符。用您喜欢的任何键绑定替换第一行。

nnoremap <leader>h :call ToggleOverLengthHighlight()<CR>
let g:overlength_enabled = 0
highlight OverLength ctermbg=black guibg=#212121

function! ToggleOverLengthHighlight()
    if g:overlength_enabled == 0
        match OverLength /\%79v.*/
        let g:overlength_enabled = 1
        echo 'OverLength highlighting turned on'
    else
        match
        let g:overlength_enabled = 0
        echo 'OverLength highlighting turned off'
    endif
endfunction

【讨论】:

以上是关于Vim 中超过 80 个字符的高亮行不适用于 php的主要内容,如果未能解决你的问题,请参考以下文章

vim 搜索和替换仅限于可视块模式下的高亮

用于 C/C++ 的压缩库能够处理数组中超过 32 位的元素

MinGW中超过15个字符的字符串问题[关闭]

Vim 状态行不从表达式扩展颜色/高亮组

vim搜索设置高亮

vim 嵌套单行循环中断命令