如何在 vi 中使用十六进制或八进制代码输入非 ascii 字符

如何在 vi 中使用十六进制或八进制代码输入非 ascii 字符

我正在尝试为后记编写一个高尔夫库。但它本身需要浓缩。所以我需要一种方便的方法来在大多数 ASCII 文本中输入任意字节。

我知道使用任何编程语言都可以轻松完成此操作,但是我可以在 vi 中完成吗? (:help octal没有帮助)。

编辑:这是结果高尔夫图书馆后记。幸运的是,我很早就意识到在图书馆打高尔夫球本身就是一个愚蠢的想法,所以我没有这样做。

答案1

:help i_CTRL-V_digit

在插入模式下,键入Ctrl+ V,然后键入

  • 十进制数 (0-255)
  • o然后是一个八进制数(o0-o377,即255是最大值)
  • x然后是一个十六进制数(x00-xFF,即255是最大值)
  • u然后是 4 个十六进制字符的 Unicode 序列
  • U然后是一个 8-hexchar Unicode 序列

十进制和八进制数仅限于三位数字。小于 100 的十进制数可能包含前导零,这些零将被忽略。小于 100 oct(即 64)的八进制数可能包含前导零,但这不是必需的。大于或等于 100 oct 的八进制数 可能不是o包括前导零(但如果您愿意,也可以键入前导零)。

您可以通过键入不是该基数的有效数字的字符来终止数字。例如,

  • Ctrl+ V    065 →  A
  • Ctrl+ V    65B →  Ab
  • Ctrl+ Vo041 →  !
  • Ctrl+ Vo419 →  !9

常规(一个八位位组)十六进制数字仅限于两位数字。与上面一样,您可以 为十六进制代码指定的字符  重复基数字符(例如, Ctrl+ Vuu0041 →  )。 并且 不区分大小写。Aox

答案2

我假设你使用vim,因为 :helpoctal是vim的命令。在某些系统上vi只是一个符号链接,vim可以在 vi 兼容模式下运行它。

在维姆中:

  • 您可以从可以使用的基本多语言平面输入 unicode 字符:
    ctrl+ v,然后输入四位十六进制 unicode 代码。
  • 另一种选择是二合字母。您可以在vim的帮助 ( )中阅读有关它们的更多信息help: dig
    ctrl+ k,然后按两个字符序列。
    您可以列出 vim usig 命令支持的序列:digraph

在 nvi、vi 和其他地方:

  • Ctrl+Shift并点击U,然后输入 unicode 十六进制代码。

相关内容