用 space 替换隐藏字符
Replace concealed characters with a space
我在编辑 LaTeX 文件时使用 vim 的 conceal
功能。此功能的一个例子是隐藏 textit
宏,导致
\textit{Hi there}
显示为
Hi there
。这通常很好,但这确实意味着字符不再显示在其正确的列中。我真正想要的是将所有隐藏字符替换为空格,而不是仅仅从行中删除,以便保留列号。上述情况的结果为:
Hi there
这可以做到吗?
您一次只能指定一个隐藏替换字符 (cchar
)。所以
syn match C1 "\textit{" conceal cchar=
" ^------ single space after equal sign
将使文本:
\textit{Hi there}
看起来像:
Hi there}
^--- space before "Hi"
如果你想用 space 替换 \textit
的每个字符,你将不得不将隐藏分成几部分(同样,每个等号后的 space):
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
我在编辑 LaTeX 文件时使用 vim 的 conceal
功能。此功能的一个例子是隐藏 textit
宏,导致
\textit{Hi there}
显示为
Hi there
。这通常很好,但这确实意味着字符不再显示在其正确的列中。我真正想要的是将所有隐藏字符替换为空格,而不是仅仅从行中删除,以便保留列号。上述情况的结果为:
Hi there
这可以做到吗?
您一次只能指定一个隐藏替换字符 (cchar
)。所以
syn match C1 "\textit{" conceal cchar=
" ^------ single space after equal sign
将使文本:
\textit{Hi there}
看起来像:
Hi there}
^--- space before "Hi"
如果你想用 space 替换 \textit
的每个字符,你将不得不将隐藏分成几部分(同样,每个等号后的 space):
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