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-updateALL 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.