5

当我/进入 vim 并搜索$它时,它会突出显示所有 eols。但是当我尝试将它们与之匹配时,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,但在我看来这有一些视觉上的副作用

4

2 回答 2

1

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

以下是您应该在 vimrc 中添加内容以实现您想要的内容的示例:

set list
set listchars+=eol:¶

一旦你放了这个,vim 将显示eol 字符的字符。

于 2013-03-27T14:02:53.793 回答
0

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

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

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

高温高压

于 2013-04-14T22:44:03.983 回答