编辑LaTeX文件时,我使用vim的conceal
功能。这个功能的一个例子是隐藏textit
宏,导致
\textit{Hi there}
显示为
Hi there
。这通常很棒,但它确实意味着字符不再显示在正确的列中。我真正想要的是将所有隐藏的字符替换为空格,而不是仅仅从行中删除,以便保留列号。上述案例的结果将是:
Hi there
可以这样做吗?
答案 0 :(得分:1)
您一次只能指定一个隐藏替换字符(cchar
)。所以
syn match C1 "\\textit{" conceal cchar=
" ^------ single space after equal sign
将制作文字:
\textit{Hi there}
看起来像:
Hi there}
^--- space before "Hi"
如果你想用空格替换\\textit
的每个字符,你必须将隐藏部分分开(再次,每个等号后面的空格):
syn match C1 contained "\\" conceal cchar=
syn match C2 contained "t" conceal cchar=
syn match C3 contained "e" conceal cchar=
syn match C4 contained "x" conceal cchar=
syn match C5 contained "t" conceal cchar=
syn match C6 contained "i" conceal cchar=
syn match C7 contained "t" conceal cchar=
syn match C8 contained "{" conceal cchar=
syn match C9 contained "}" conceal
syn match Conceal "\\textit{\|}" contains=C1,C2,C3,C4,C5,C6,C7,C8,C9
set conceallevel=2
set concealcursor=vic