program story

Emacs에서 knitr Markdown 하이라이트?

inputbox 2020. 7. 29. 08:11
반응형

Emacs에서 knitr Markdown 하이라이트?


Emacs에서 열었을 때 knitr markdown 문서에서 R 코드의 구문을 강조하는 기존 도구 또는 새 도구가 수정 되었습니까?

내가보고있는 짜는 덩어리 [```]는 R 코드가 들어있는 트리플 백틱 블록 입니다.

편집 : 내가 지금까지 시도한 것들 :

- 우분투 이맥스 (23) 12.04

emacs --version
GNU Emacs 23.3.1

1. 폴리 모드

https://github.com/vitoshka/polymode/issues/3

Rmd 파일을 구문 강조하기 위해 폴리 모드를 얻으려고하지만 '색상'로드 파일에 대해 불평합니다.

cd ~/.emacs.d
git clone https://github.com/vitoshka/polymode.git

내 .emacs 파일에서 :

(add-to-list 'load-path "/home/avilella/.emacs.d/polymode/")
(add-to-list 'load-path "/home/avilella/.emacs.d/polymode/modes/")

;; Require any polymode bundles that you are interested in:

(require 'poly-R)
(require 'poly-markdown)

평가 버퍼 :

Cannot open load file: color

- CentOS는 이맥스 24 :

emacs --version
GNU Emacs 24.2.1

1. 폴리 모드가 올바르게 설치되었습니다

M-x polymode-minor-mode구문 강조 표시를 변경하지 않고 Rmd 파일을 엽니 다 .


emacs --version
GNU Emacs 24.3.1

1. 폴리 모드가 올바르게 설치되었습니다

Rmd 파일을 엽니 다. M-x poly-markdown+r-mode구문 강조 중 일부가 나타나기 시작하지만 구문을 완전히 표시하려면 각 트리플 틱 코드 블록에서 테스트를 수동으로 수정해야합니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

두 번째 이미지는 knitr 블록 앞에 Return을 입력 한 직후입니다.


도움이 될 수 있습니다 : http://sjp.co.nz/posts/emacs-ess-knitr/

ESS를 통한 Emacs의 Knitr 마크 다운


너의 문제

우선, 당신은 GNU Emacs 23.3.1을 가지고 있다고 말하지만,에서 polymode readme.md읽습니다 :

Emacs 24.3.1 및 24.4.5로 테스트되었습니다.

오류 : "로드 파일을 열 수 없습니다 : 색상"에서에 polymode.el다음 줄이 있습니다.

(require 'color)

이 패키지는 Emacs 24에 포함되어 있지만 사용중인 버전에는 없을 수 있습니다.

해결책

  1. 최신 (지원되는) Emacs 버전으로 업그레이드하십시오.

  2. Emacs 자료를 보관하는 디렉토리에서 polymode.zip추출하십시오 . 예 :

    ~\conf\emacs
    

결과 polymode-master디렉토리를 다음으로 변경하십시오.polymode

  1. 이것을 init 파일에 추가하십시오 (그리고 위의 다른 이름을 사용했다면 그에 따라 아래의 이름을 변경하십시오) :

    ;; Just an Emacs personal dir containing polymode packages etc.
    (setq MY-EMACS  "~/conf/emacs") 
    
    (defun my-emacs  (subfolder)
    "Get path to personal dir + subfolder"
    (concat (expand-file-name MY-EMACS) "/" subfolder))
    
    ;; ESS Markdown
    ;; -------------
    (defun rmd-mode ()
      "ESS Markdown mode for rmd files"
      (interactive)
      (setq load-path 
        (append (list (my-emacs "polymode/") 
                  (my-emacs "polymode/modes/"))
            load-path))
      (require 'poly-R)
      (require 'poly-markdown)
      (poly-markdown+r-mode))
    
    ;; Wrap line in markdown. Comment if you don't dislike words cut in the middle
    (add-hook 'markdown-mode-hook (lambda () (visual-line-mode 1)))
    
    ;; Let you use markdown buffer easily
    (setq ess-nuke-trailing-whitespace-p nil)  
    
  2. Meta+ rmdRmd 파일이 열리거나 모드가 설정되면 <!-- Local Variables: -->
    ... 생산성의 극적인 변화를 즐기십시오.

추신
마지막 줄을 간과하지 마십시오. 마크 다운을 올바르게 저장할 수 있습니다. 그렇지 않으면 문서를 다시 열면 불쾌한 놀라움이 생길 것입니다.

Windows 사용자를위한 참고 사항

Linux 사용자라면 이것을 건너 뛰십시오. 그러나 Ubuntu에 대한 질문에도 불구하고 내 대답은 Windows Emacs에도 완벽하게 적용됩니다. 다음과 관련하여 :

  • 2 단계) 다음 위치에서 polymode.zip추출합니다 .

    %USERPROFILE%\conf\emacs
    

    짐작 하듯이, 환경 변수 % USERPROFILE %에는 사용자 프로필 디렉토리의 경로가 포함되어 있습니다. 확실하지 않은 경우 set USERPROFILECLI 프롬프트에서 실행하십시오 .
    Windows 사용자는에 물건을 저장하는 데 사용될 수 있습니다 My Documents. 이 경우 귀하의 디렉토리는 다음과 같습니다.

    %USERPROFILE%\Documents\conf\emacs
    
  • 3 단계) 2) 단계에서 경로를 사용한 %USERPROFILE%\Documents\conf\emacs경우 첫 번째 코드 줄을 다음과 같이 변경하십시오.

    (setq MY-EMACS  "~/conf/emacs") 
    

    에 (슬래시 참고) :

    (setq MY-EMACS  "~/Documents/conf/emacs") 
    

    두 경우 모두 ( "내 문서"유무에 관계없이) Windows 스타일을 더 선호 할 수 있습니다.

    (setq MY-EMACS (substitute-in-file-name "$USERPROFILE/Documents/conf/emacs")) 
    

참고 URL : https://stackoverflow.com/questions/16567348/knitr-markdown-highlighting-in-emacs

반응형