如何在vim脚本中使用Unicode字符?

3

我想让vim将我的制表符显示为,这样它们就不会被误认为是实际的字符。我希望以下内容可以起作用:

if has("multi_byte")
    set lcs=tab:⇥ 
else
    set lcs=tab:>-
endif

然而,这给我带来了一些...
E474: Invalid argument: lcs=tab:⇥

该文件是UTF-8编码,包含BOM。

通过谷歌搜索"vim编码"或类似关键词,可以得到很多有关编辑文件编码的结果,但没有关于执行脚本编码的信息。如何将此字符添加到我的.vimrc文件中,以便正确显示?

2个回答

8
选项设置需要两个字符。来自:help listchars
  tab:xy    Two characters to be used to show a tab.  The first
        char is used once.  The second char is repeated to
        fill the space that the tab normally occupies.
        "tab:>-" will show a tab that takes four spaces as
        ">---".  When omitted, a tab is show as ^I.

类似于:set lcs=tab:⇥-这样的设置是有效的,但它有点违背了你的初衷,因为它会产生看起来像⇥---而不是---⇥的制表符,我猜这可能不是你想要的。


噢,嗨!我在那之后加了一个空格,显然那是vim抱怨的字符。不知何故我没想到检查一下……我通过复制和粘贴“en space”(U+2002)在tab字符后得到了我想要的()。 - Thomas
4
@Thomas - 如果你对空格字符使用转义符号,可以使用普通的空格字符:tab:⇥\ - Randy Morris

2

尝试:

set lcs=tab:⇥\ 

请务必在 '\' 后面加上一个空格,以便您可以转义空格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接