16진수 또는 8진수 코드를 사용하여 vi에서 ASCII가 아닌 문자를 입력하는 방법

16진수 또는 8진수 코드를 사용하여 vi에서 ASCII가 아닌 문자를 입력하는 방법

포스트스크립트용 골프 라이브러리를 작성하려고 합니다. 하지만 그 자체가 집중되어야 합니다. 따라서 대부분 ASCII 텍스트에 임의의 바이트를 입력하는 편리한 방법이 필요합니다.

모든 프로그래밍 언어를 사용하여 이 작업을 쉽게 수행할 수 있다는 것을 알고 있지만 vi에서도 수행할 수 있습니까? ( :help octal도움이 없습니다).

편집하다:이것이 결과이다골프 도서관 추신. 다행히 도서관에서 골프를 치는 것 자체가 어리석은 생각이라는 것을 일찍 깨달았기 때문에 하지 않았습니다.

답변1

:help i_CTRL-V_digit

삽입 모드에서 Ctrl+를 입력한 V다음 다음을 입력하세요.

  • 10진수(0-255)
  • o그런 다음 8진수(o0-o377, 즉 255가 최대값임)
  • x그런 다음 16진수(x00-xFF, 즉 255가 최대값임)
  • u그런 다음 4개의 16진수 문자로 구성된 유니코드 시퀀스
  • U그런 다음 8-hexchar 유니코드 시퀀스

10진수와 8진수는 3자리로 제한됩니다. 100보다 작은 10진수에는 앞에 0이 포함될 수 있으며 이는 무시됩니다. 100 진수 (즉, 64) 보다 작은 8진수에는 앞에 0이 포함될 수 있지만 필수는 아닙니다. 100 oct 보다 크거나 같은 8진수 가 가능합니다.아니요o앞에 0을 포함합니다(원하는 경우 앞에 0을 입력할 수도 있음).

해당 진수에 유효한 숫자가 아닌 문자를 입력하여 숫자를 종료할 수 있습니다. 예를 들어,

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

일반(1옥텟) 16진수는 2자리로 제한됩니다. 위와 같이  16진수 코드로 지정된 문자에 대해 기수 문자(예: Ctrl+ → )를 반복할 수 있습니다. Vuu0041그리고 대소문자를 구분하지 않습니다.Aox

답변2

나는 당신이 사용한다고 가정합니다 vim. :helpoctalvim 명령입니다. 일부 시스템에서는 vi이는 단지 기호 링크일 뿐이며 vimvi 호환 모드에서 실행될 수 있습니다.

빔에서:

  • 사용할 수 있는 기본 다국어 평면에서 유니코드 문자를 입력할 수 있습니다. +를
    누른 다음 4자리 16진수 유니코드 코드를 입력합니다.ctrlv
  • 또 다른 옵션은 이중 그래프입니다. vim자세한 내용은 도움말( )에서 읽어 보실 수 있습니다 help: dig. +를
    누른 다음 두 문자 순서를 누르십시오. vim usig 명령이 지원하는 시퀀스를 나열할 수 있습니다 .ctrlk
    :digraph

nvi, vi 및 기타 위치:

  • Ctrl+를 Shift클릭한 U후 유니코드 16진수 코드를 입력하세요.

관련 정보