Emacs의 knitr Markdown 강조?


111

Emacs에서 열었을 때 knitr markdown 문서에서 R 코드 블록을 구문 강조 (색상)하는 기존 도구 나 새 도구를 수정 한 것이 있습니까?

내가보고있는 knitr 청크는 [```]내부에 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. 올바르게 설치된 Polymode

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


emacs --version
GNU Emacs 24.3.1

1. 올바르게 설치된 Polymode

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

여기에 이미지 설명 입력

여기에 이미지 설명 입력

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


10
답을 알고 싶습니다. ESS 녀석들이 이것에 대해 이야기 할 것이라는 지속적인 소문이 있지만 아직 보지 못했습니다 ...
Ben Bolker

3
집에 기본적으로 작동하는 것이 있습니다. 무 모모 모드와 마크 다운 모드를 기반으로합니다. 그래도 작동하려면 mumamo-mode를 몇 가지 변경해야했습니다. bugs.launchpad.net/nxhtml/+bug/626039/comments/5 . 집에 돌아와 내가 한 일을 기억하면 여기에서 답변을 드리겠습니다.
Erik Iverson 2013 년

4
Vitalie의 경우 polymode: github.com/vitoshka/polymode
daroczig

3
@daroczig-흥미 롭습니다. README의 경고 에서 그가 의미하는 "문해력있는 프로그래밍 백엔드 없음"이 무엇을 의미하는지 알 수 있습니다 ! 부분?
Josh O'Brien

4
@ JoshO'Brien Vitalie의 ess-help 발표에서 그는 자신이 의미하는 바를 명확히합니다. "Rnw는 단지 폴리 모드 일뿐입니다. 제가 의미하는 바는 유능한 프로그래밍 백엔드가 파일을 다른 것으로 처리 / 변환 할 수있는 도구입니다. knitr 또는 org- 모드. 요즘에는 ess-swv-weave 및 ess-swv-PDF를 R 관련 폴리 모드 맵에 연결합니다. knitr가 처리중인 항목을 인식 할 수있을만큼 똑똑하기 때문에 당분간은 괜찮을 것입니다. "
Erik Iverson 2013 년

답변:


3

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

ESS를 통한 Emacs의 Knitr Markdown


죄송하지만이 참조는 잘못되었습니다. 현재 Emacs-ESS에는 Rmd 문서 또는 단순한 마크 다운에 대한 강조 표시 가 없습니다 (링크 된 기사에서 그렇게 주장하지 않는 방식). 전자의 경우 폴리 모드가 필요하고 후자의 경우 markdown.el이 필요합니다. 게다가, ESS 엔진을 Sweave에서 knitr로 바꾸는 것뿐이라면 (하이라이트없이!),이 기사의 모든 복잡한 과정을 거치지 않고 (setq ess-swv-processor 'knitr)init 파일 만 추가 하면됩니다.
antonio 2014

2

너의 문제

우선, 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: -->
    ...로 설정하면 생산성의 극적인 변화를 즐길 수 있습니다.

추신
: 마지막 elisp 줄을 간과하지 마십시오. 마크 다운을 제대로 저장할 수 있습니다. 그렇지 않으면 문서를 다시 열 때 불쾌한 놀라움이 생깁니다.

Windows 사용자를위한 참고 사항

당신이 리눅스 사람이라면 이것을 건너 뛰십시오. 그러나 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")) 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.