내가 원하는 출력입니다 같은보기 (및 / 또는 편집) 이맥스에서 색상 화 텍스트로 ls -l --color=always
, tree...
또는 무엇 이건.
내가 참조하는 텍스트는 파일에 있습니다. emacs에서 해당 파일을 열 때 색상이 지정된 것을 보거나 ANSI (SGR) 이스케이프 시퀀스를 표시하도록 토글 할 수 있기를 원합니다.
ansi-color.el
내가 필요한 것 같지만 ANSi 이스케이프 시퀀스 의 색상 화를 수행 할 수 없었지만 개별 제어 바이트 (예 : ^A
및 ^[
)에 대해 파란색 굵게 표시됩니다 . 그것이의 기능인지 확실 ansi-color
하지만 나는 그것이 있다고 생각합니다.
에 따르면 ANSI-color.el 코멘트 , 그것은 문자열 및 지역에서 작동 할 수 있지만, 심지어는 함수가 예를 들어 .. 작동하지 않는 것 ansi-color-apply-on-region
으로 인식되지 않습니다 M-x
. "일치하지 않는다"
내가 추가 한 (require 'ansi-color)
내에 이맥스 파일도 (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
. emacs가 시작될 때 오류나 경고가 표시되지 않으므로 멈춰 있습니다.
어떻게하면 표준 기능이 작동하도록 할 수 있으며, 이름이 붙은 파일을 열 때 자동으로 적용되도록 만들 수 .col
있습니까?
당신이 놓친 부분은 interactive
형태 라고 생각합니다 . Emacs가 다른 함수에 의해 호출되도록 설계된 함수와 사용자가 직접 호출하도록 설계된 함수를 구별하는 방법입니다. Emacs Lisp Intro 노드보기
이제의 정의를 읽으면 ansi-color-apply-on-region
대화 형 사용을 위해 설계되지 않았 음을 알 수 있습니다. "ansi-color"는 comint 출력을 필터링하도록 설계되었습니다. 그러나 대화 형 래퍼를 만드는 것은 쉽습니다.
(defun ansi-color-apply-on-region-int (beg end)
"interactive version of func"
(interactive "r")
(ansi-color-apply-on-region beg end))
다음 비트는 .col 확장자에 대해 ansi 색상을 켜려는 것입니다. 해당 파일을 편집하는 데 사용할 주요 모드에 후크 기능을 추가 할 수 있습니다. 이 기능은 주 모드를 켤 때마다 실행되므로 적절한 파일 접미사에 대한 검사를 추가해야합니다.
또는 "기본"모드를 기반으로 빠른 파생 모드를 해킹 할 수 있습니다.
(define-derived-mode fundamental-ansi-mode fundamental-mode "fundamental ansi"
"Fundamental mode that understands ansi colors."
(require 'ansi-color)
(ansi-color-apply-on-region (point-min) (point-max)))
해당 확장과 연결합니다.
(setq auto-mode-alist
(cons '("\\.col\\'" . fundamental-ansi-mode) auto-mode-alist))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다