有向图

有向图

我想½在 vi 模式下输入,但它带有额外的字符½。我很紧迫ALT+0189。我已经搜索了很多相同的内容但未能找到。

答案1

如果通过终端输入不起作用(看起来编码不匹配),您可以使用 Vim 的内置方法来输入特殊字符。

有向图

比较舒服的一个是:help digraphs。 的表格:help digraph-table列出了该特定字符:

½   12  0xbd    189 VULGAR FRACTION ONE HALF

要插入,请键入Ctrl+ K,然后键入12

按号码输入

这在下面进行了描述:help i_CTRL-V_digit。对于十进制数,输入Ctrl+ V, 1 8 9。您还可以使用十六进制表示法 ( xbd)。

答案2

我想½在 vi 模式下输入,但它带有额外的字符½

不。

发生的情况是您的终端正在发送编码为 UTF-8 的字符。该字符为U+00BD,其UTF-8编码为两个8位字符序列,其十六进制值为C2 BD

不过,vim 认为您输入的不是 UTF-8。它认为您输入了两个 8 位字符,第一个字符 U+00C2,然后是字符 U+00BD。因此它插入了这两个字符。

让 vim 相信您正在使用 UTF-8 相当于进入了语言环境和编码的复杂世界。 vim 当前认为您的终端生成 Latin-1 (ISO 8859-1) 输入。你需要 vim 相信你的终端生成 UTF-8 输入。

此外:从注释中隐藏的内容到另一个答案,很明显,您的帮助文本也没有被视为 UTF-8,这表明它不能在 UTF-8 内部工作,可能是因为您的环境变量(LANGLC_ALL等)未指定 UTF-8 区域设置。为了让 vim 正确处理 UTF-8 输入,最好在内部使用 UTF-8 作为其整体编码。

诸如此类的东西

:设置 termencoding=utf-8 编码=utf-8
命令可能是最好的行动方案。但您可能会发现自己也在调整环境变量。

相关内容