vi에서 16 진 또는 8 진 코드를 사용하여 ASCII가 아닌 문자를 입력하는 방법 작성하려고합니다. 그러나 자체 압축해야합니다. 따라서

포스트 스크립트 용 골프 라이브러리를 작성하려고합니다. 그러나 자체 압축해야합니다. 따라서 대부분 ASCII 텍스트 내에서 임의의 바이트를 입력하는 편리한 방법이 필요합니다.

나는 이것이 절대적으로 모든 프로그래밍 언어로 쉽게 수행 할 수 있다는 것을 알고 있지만 vi에서 할 수 있습니까? ( :help octal도움이 없었습니다).

편집 : postscript에 대한 결과 골프 라이브러리는 다음과 같습니다 . 다행히도, 나는 그 자체로 골프를 치는 것이 어리석은 아이디어라는 것을 일찍 깨달았고 나는 그렇게하지 않았다.



답변

vim의 명령 vim이기 때문에을 사용한다고 가정합니다 . 일부 시스템 에서는 vi 호환 모드로 실행 되는 심볼릭 링크 일뿐 입니다. :helpoctalvivim

vim에서 :

  • : 당신은 당신이 사용할 수있는 기본 다국어 평면에서 유니 코드 문자를 입력 할 수 있습니다
    를 눌러 ctrl+를 v누른 다음 4 자리 진수 유니 코드를 입력합니다.
  • 또 다른 옵션은 digraphs입니다. vim도움말 ( help: dig) 에서 자세한 내용을 읽을 수 있습니다 . + 를 누른 다음 두 문자 시퀀스를
    누르십시오 .
    vim usig 명령에서 지원되는 시퀀스를 나열 할 수 있습니다 .ctrlk
    :digraph

nvi, vi 및 다른 곳에서 :

  • Ctrl+ Shift와 히트 U다음과 유니 코드 16 진 코드를 입력합니다.

답변

:help i_CTRL-V_digit

삽입 모드에서 Ctrl+를 입력 한 V다음

  • 십진수 (0-255)
  • o 8 진수 (o0-o377, 즉 255가 최대 값임)
  • x 16 진수 (x00-xFF, 즉 255는 최대 값)
  • u 그런 다음 4 진수 문자 유니 코드 시퀀스
  • U 8- 헥사 문자 유니 코드 시퀀스

10 진수와 8 진수는 3 자리로 제한됩니다. 100보다 작은 10 진수는 선행 0을 포함 할 수 있으며 무시됩니다. 100 oct 보다 작은 8 진수 (즉, 64)는 선행 0을 포함 할 수 있지만 필수는 아닙니다. 100 옥텟 보다 크거나 같은 8 진수 에는 앞에 0이 포함 되지 않을
수 있습니다 (그러나 o원하는 경우 앞에 숫자를 입력 할 수 있음 ).

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

  • Ctrl+ V   
    065 →  A.
  • Ctrl+ V   
    65B →  Ab.
  • Ctrl+ Vo
    041 →  !.
  • Ctrl+ Vo
    419 →  !9.

정규 (1 옥텟) 16 진수는 두 자리로 제한됩니다. 위와 같이 16 진 코드로 지정된 문자에 대해 기수 문자 (예 : Ctrl+ Vuu
0041 →  A)를 반복 할 수 있습니다  . 
o 와  x소문자를 구분하지 않습니다.


답변