Vim

如何在 vi 中使用十六進製或八進制程式碼輸入非 ascii 字元

  • March 1, 2019

我正在嘗試為 postscript 編寫一個高爾夫庫。但它需要自己濃縮。所以我需要一種方便的方法來在大多數 ascii 文本中輸入任意字節。

我知道這可以用任何程式語言輕鬆完成,但我可以在 vi 中完成嗎?(:help octal沒有幫助)。

*編輯:*這是postscript 生成的高爾夫庫。幸運的是,我很早就意識到在圖書館打高爾夫球是一個愚蠢的想法,我沒有那樣做。

:help i_CTRL-V_digit

在插入模式下,鍵入Ctrl+V後跟

  • 十進制數 (0-255)
  • o然後是一個八進制數(o0-o377,即255是最大值)
  • x然後是一個十六進制數(x00-xFF,即 255 是最大值)
  • u然後是一個 4-hexchar 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 →  A)。  o 並且 x不區分大小寫。

引用自:https://unix.stackexchange.com/questions/61118