Emacsでのknitr Markdownの強調表示?


111

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

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

編集:私がこれまでに試したこと:

- Ubuntuで Emacsの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)

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と、構文の強調表示の一部が表示され始めますが、構文を完全に表示するには、コードの各トリプルティックブロックのテストを手動で変更する必要があります。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

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


10
答えを知りたいです。ESSの人たちがこれに
対処する

3
私は家で基本的に機能するものを持っています。mumamo-modeとmarkdown-modeに基づいています。ここで説明するように、mumamo-modeをいくつか変更して、動作させる必要がありました:bugs.launchpad.net/nxhtml/+bug/626039/comments/5。家に帰ったら答えをここでフォローアップし、私が何をしたか覚えています。
エリックアイバーソン2013年

4
Vitalieについてはどうですかpolymodegithub.com/vitoshka/polymode
daroczig

3
@daroczig-興味深い。READMEの警告で、彼が「読み書きのできないプログラミングバックエンド」によって何を意味するかについての考えはセクション?
ジョシュオブライエン

4
@ JoshO'Brien Vitalieのess-helpの発表で、彼は彼が何を意味するのかを明確にしました。モード。私は最近、ess-swv-weaveとess-swv-PDFをR関連のポリモードマップにフックします。knitrは処理しているものを認識するのに十分スマートなので、しばらくは問題ありません。」
エリックアイバーソン2013年

回答:


3

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

ESSによるEmacsでのKnitrマークダウン


申し訳ありませんが、この参照は間違っています。現在、Emacs-ESSにはRmdドキュメントの強調表示や単純なマークダウンはありません(そして、リンクされた記事はそうではありません)。前者についてはポリモードが必要で、後者についてはmarkdown.elが必要です。さらに、ESSエンジンをSweaveからknitrに切り替えるだけである場合(強調表示なし!)、この記事の複雑な手順をすべて実行する必要はありませ(setq ess-swv-processor 'knitr)ん。initファイルを追加するだけです。
antonio

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: -->
    ...生産性の劇的な変化をお楽しみください。

PS
最後のelispラインを見逃さないでください。マークダウンを適切に保存できるようになります。そうしないと、ドキュメントを再度開いたときに、不愉快な驚きがあります。

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") 

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

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