我不知道为什么但是vim会显示带有空格的隐形unicode字符。只需在vim中输入,你就会看到。
For(
:tabe
“你好”之后有一个空格。我怎么能隐藏这个空间?或者有没有办法在vim中用不可见的东西标记文本?例如,文件中有一个文本
:call setline(1, "\u2063hello")
我要首先强调“foo”。此刻,我首先用“\ u2063”字符foo foo
标记“foo”。
答案 0 :(得分:0)
hello 您看到的内容取决于您运行Vim的终端。在GVIM(Vim本身进行渲染)中,行的开头确实有一个空的显示单元格。由于Vim使用固定的基于单元的字符寻址,因此这是预期的。 U + 2063字符是一个不可见的分隔符,但它仍占用一个显示单元格。
现在,终端(我正在使用Gnome终端)以不同的方式呈现此角色:它不输出任何内容。所以Vim假定第一个单元格已被占用,h
的{{1}}'将在第二个单元格输出,但终端将绘图光标保持在第一个单元格,并且所有后续字符都被渲染错误。您可以通过在Vim内部移动并使用hello
命令来查看不匹配。
对于某些组合字符和其他“有趣”的Unicode字符,可能会遇到类似的效果。我不确定问题是终端,Vim还是终端数据库解释不匹配。