Emacs : 16 진수 이스케이프 시퀀스를 사용하여 표시


3

Emacs는 글리프가없는 문자를 8 진수 이스케이프 시퀀스 "\ OOO"로 표시합니다 (예 : PDF 파일의 시작 부분부터).

%PDF-1.4
%\344\343\317\322
1 0 obj
[/PDF/ImageB/ImageC/ImageI/Text]
endobj
4 0 obj
<</Length 5 0 R/Filter/FlateDecode>>
stream
9\323\317\221\321\356j\305
endstream

16 진수 이스케이프 시퀀스 "\ xFF"를 얻기 위해 (상대적으로 간단한) 구성을 설정할 수 있습니까? 같이:

%PDF-1.4
%\xE4\xE3\xCF\xD2
1 0 obj
[/PDF/ImageB/ImageC/ImageI/Text]
endobj
4 0 obj
<</Length 5 0 R/Filter/FlateDecode>>
stream
9\xD3\xCF\x91\xD1\xEEj\xC5
endstream

(텍스트 모드 나 기본 모드, 또는 헥스 모드가 아닌 ... 사용)

답변:


2

필자는 이전에 이런 일을 해본 적이 없지만, Elisp 매뉴얼을 조금 읽고 실험 해보니, 이런 식으로 뭔가를 생각할 수 있습니다.

(let ((ii          128)
      (new-dtable  (make-display-table))
      (hex-string  nil))
  (while (< ii 256) ; Convert decimal codes 128 to 255.
    (setq hex-string  (format "%X" ii))
    (aset new-dtable ii
          (vector
           (make-glyph-code ?\ 'escape-glyph)
           (make-glyph-code ?x 'escape-glyph)
           (make-glyph-code (aref hex-string 0) 'escape-glyph)
           (make-glyph-code (aref hex-string 1) 'escape-glyph)))
    (setq ii  (1+ ii)))
  (set-window-display-table (selected-window) new-dtable))

그런 다음 사용하면 C-q 3 4 4 RET, 보통 8 진수 이스케이프 시퀀스를 삽입한다. \344, 글리프를 삽입합니다. xE4.

내가 본 Elisp 매뉴얼의 관련 부분은 노드 밑의 것들이다. Character Display.


좋아 보인다, 그러나 그것은 완전하게 작동하지 않는다. 이제는 더 깊이 조사 할 시간이 없지만 새로 삽입 된 캐릭터를 변환하는 것 같지만 기존의 캐릭터는 변환하지 않은 것으로 보입니다.
— Rolazaro Azeveires

재발견과 디스플레이 테이블이 작동하는 방식과 관련이 있다고 들립니다. 나는 그것에 대한 전문가가 아니다. 다시 표시해야 할 수도 있습니다 (예 : force-mode-line-update 와 ALL arg) 또는 버퍼를 다시 방문 (예 : C-x v 또는 되돌리기). (당신은 upvote 또는 BTW .-)) 대답을 받아 들일 환영합니다)
— Drew

그것이 아직 (아직) 그것을 해결하지 않기 때문에 그것은 유용하기 때문에 upvoted, 받아 들여지지 (아직?). 그리고 나 미움 투표하도록 요청받는
— Rolazaro Azeveires

참고 - 나를 위해 ~하다 또한 버퍼에있는 기존 문자를 변환합니다. 에 대한 전화를 추가하려고 시도 했습니까? force-mode-line-update (non-nil arg로)? 필자의 경우이 코드는 MS Windows의 Emacs 24 (최근의 dev snapshot)와 Emacs 23.4에서 작동합니다.
— Drew

또한 아이콘 화 (최소화) 한 다음 프레임을 복원하거나 프레임의 크기를 조정하십시오. 또한 버퍼를 죽이고 다시 만들어보십시오 (적어도 도움이되는지 확인하기 위해).
— Drew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.