匹配行尾(EOL)与vim中的语法匹配

时间:2013-03-24 22:15:59

标签: regex vim match eol end-of-line

当我在vim中点击/并搜索$时,它会突出显示所有内容。但是当我尝试将它们与syntax match匹配时,它似乎不起作用。

function! ConcealNonText()
    set conceallevel=1
    set concealcursor=v
    syntax match NonText /$/ conceal cchar=¶
endfunction

augroup ConcealNonText
    autocmd!
    autocmd VimEnter * call ConcealNonText()
augroup END

任何提示如何匹配它以显示eols作为隐藏的字符? 我知道我可以使用set list listchars,但我认为这有一些visual side effects

2 个答案:

答案 0 :(得分:1)

看起来您的要求是显示代替eol。虽然你给出的代码可能是一个可能的解决方案,但它肯定不是一个理想的解决方案。 Vim提供了一种更简单的方法来实现您的愿望。你真正需要做的是查找:h listchars

以下是您应该在vimrc中实现所需内容的示例:

set list
set listchars+=eol:¶

一旦你把它,vim将显示eol角色的角色

答案 1 :(得分:0)

要做你想做的事,你可以matchadd()来匹配所有行的结尾。 Matchadd将返回一个ID,可以帮助您在需要时删除给定的匹配项。

:call matchadd("NonText", "$")

有关如何使用它的更多信息,请参阅:he matchadd()

HTH