web-dev-qa-db-ja.com

Emacsでのknitr Markdownの強調表示?

Emacsで開いたときにknitrマークダウンドキュメントのRコードのブロックを構文強調表示する既存のツールまたは新しいツールに変更はありますか?

私が見ているknitrチャンクは、トリプルバックティックブロック[```]内部にRコードを含む。

EDIT:これまでに試したこと:

- bunt 12.04 with Emacs 2

emacs --version
GNU Emacs 23.3.1

1。ポリモード

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

私はポリモードで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)

eval-buffer:

Cannot open load file: color

- CentOS Emacs 24の場合:

emacs --version
GNU Emacs 24.2.1

1。ポリモードが正しくインストールされました

Rmdファイルを開きます、M-x polymode-minor-mode、構文の強調表示に変更はありません。


emacs --version
GNU Emacs 24.3.1

1。ポリモードが正しくインストールされました

Rmdファイルを開きます、M-x poly-markdown+r-mode、構文の強調表示の一部が表示され始めますが、構文を完全に表示するには、コードのトリプルティックブロックごとにテストを手動で変更する必要があります。

Enter image description here

Enter image description here

2番目の画像は、knitrブロックの前にReturnを入力した直後です。

111
719016

これは役立つかもしれません: http://sjp.co.nz/posts/emacs-ess-knitr/

ESSを介したEmacsのKnitrマークダウン

3
priyolahiri

あなたの問題

まず、GNU Emacs 23.3.1がありますが、polymodereadme.mdでは、次のようになります。

Emacs 24.3.1および24.4.5でテスト済み。

エラー:「ロードファイルを開けません:色」、polymode.elに次の行があります。

(require 'color)

このパッケージはEmacs 24にありますが、お使いのバージョンでは見落とされる可能性があります。

解決

  1. Emacsの最新の(したがってサポートされている)バージョンにアップグレードします。

  2. Emacsの資料を保持するディレクトリで polymode.Zip を抽出します。例:

    ~\conf\emacs
    

そして、結果のpolymode-master dirをpolymodeに変更します

  1. これを初期化ファイルに追加します(上で別の名前を使用した場合は、それに応じて下の名前を変更します)

    ;; 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+ rmd Rmdファイルが開いているとき、または<!-- Local Variables: -->でモードを設定しているとき
    ...生産性の劇的な変化をお楽しみください。

[〜#〜] ps [〜#〜]
最後のelisp行を見落とさないでください。マークダウンを適切に保存できます。そうしないと、ドキュメントを再度開いたときに不愉快な驚きがあります。

Windowsユーザーへの注意

あなたがLinuxの人ならこれを飛ばしてください。しかし、Ubuntuについての質問にもかかわらず、私の答えはWindows Emacsにも完全に当てはまります。以下に関してのみ:

  • 手順2) polymode.Zip を抽出します。

    %USERPROFILE%\conf\emacs
    

    ご想像のとおり、環境変数%USERPROFILE%にはユーザープロファイルディレクトリへのパスが含まれています。不明な場合は、CLIプロンプトでset USERPROFILEを実行してください。
    Windowsユーザーは、My Documentsに物事を保存するために使用される場合があります。その場合、ディレクトリは次のようになります。

    %USERPROFILE%\Documents\conf\emacs
    
  • ステップ3)ステップ2)でパス%USERPROFILE%\Documents\conf\emacsを使用した場合、それに応じて最初のコード行を以下から変更します。

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

    to(スラッシュに注意):

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

    どちらの場合も(「マイドキュメント」の有無にかかわらず)、より多くのWindowsスタイルを好む場合があります。

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