我想½
在 vi 模式下输入,但它带有额外的字符½
。我很紧迫ALT+0189
。我已经搜索了很多相同的内容但未能找到。
答案1
如果通过终端输入不起作用(看起来编码不匹配),您可以使用 Vim 的内置方法来输入特殊字符。
有向图
比较舒服的一个是:help digraphs
。 的表格:help digraph-table
列出了该特定字符:
½ 12 0xbd 189 VULGAR FRACTION ONE HALF
要插入,请键入Ctrl+ K,然后键入1和2。
按号码输入
这在下面进行了描述: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 内部工作,可能是因为您的环境变量(LANG
、LC_ALL
等)未指定 UTF-8 区域设置。为了让 vim 正确处理 UTF-8 输入,最好在内部使用 UTF-8 作为其整体编码。
诸如此类的东西
:设置 termencoding=utf-8 编码=utf-8命令可能是最好的行动方案。但您可能会发现自己也在调整环境变量。