Vim具有list
和listchars
选项,使得vim在某些情况下显示“虚拟角色”(我指的是实际上不在缓冲区中的角色)。例如,您可以使尾随空格看起来像其他东西,或者添加一个可见字符来表示换行符。
我希望能够在某些常规模式之前或之后(可能是语法项目)启用某些字符的显示。类似于语法高亮,但不仅仅是改变字符的颜色/样式在缓冲区中,我想显示不在缓冲区中的额外字符。
例如,我想在出现在行尾的所有单词“:
”之后显示虚拟where
(冒号)。
这是可能的吗?如果是这样,那么做什么是必要的vimscript?
答案 0 :(得分:3)
这听起来像是在Vim 7.3(:help :syn-conceal
)中添加的隐藏功能的用例。但是,它与:set list
:
:autocmd Syntax * ...
),并且可能存在干扰where
之后有空格,则可以将其转换为:
,但您无法添加一个虚拟角色,这对于行尾的where
根本不起作用'conceallevel'
和'concealcursor'
选项以获得与列表类似的行为因此,它不容易且与:set list
完全一致;你是否真的需要这个功能。 (你没有说出这是为了什么,暗示着XY problem。)
对于一个完美的"实施时,您必须修改Vim的源代码,以添加额外的'listchars'
选项。