knitr Markdown vurgulama Emacs'ta mı?


111

Emacs'de açıldığında bir knitr markdown belgesindeki R kodu bloklarını sözdizimi ile vurgulayacak (renkli) mevcut bir araçta veya yeni araçta herhangi bir değişiklik var mı?

Baktığım örgü parçaları, [```]içinde R kodunu içeren üçlü arka uçlu bloklar .

DÜZENLEME: şimdiye kadar denediğim şeyler:

- Emacs 23 ile Ubuntu 12.04

emacs --version
GNU Emacs 23.3.1

1. Polimod

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

Rmd dosyalarımı sözdizimi vurgulamak için polymode almaya çalışıyorum, ancak bir 'renk' yükleme dosyası hakkında şikayet ediyor:

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

.Emacs dosyamda:

(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-tampon A:

Cannot open load file: color

- Emacs 24 ile CentOS :

emacs --version
GNU Emacs 24.2.1

1. Polimod doğru şekilde kuruldu

Bir Rmd dosyası açın M-x polymode-minor-mode, sözdizimi vurgulamasında değişiklik yok.


emacs --version
GNU Emacs 24.3.1

1. Polimod doğru şekilde kuruldu

Bir Rmd dosyası açın M-x poly-markdown+r-mode, bazı sözdizimi vurgulamaları görünmeye başlar, ancak sözdizimini tam olarak göstermesi için her üç işaretli kod bloğundaki testi manuel olarak değiştirmem gerekiyor.

Buraya resim açıklamasını girin

Buraya resim açıklamasını girin

İkinci resim, örgü bloğundan önce bir Return yazdıktan hemen sonra.


10
cevapları bilmek isterim. ESS elemanlarının buna
alışacağına

3
Evde temelde çalışan bir şey var. Mumamo modu ve markdown moduna dayalıdır. Yine de çalışmasını sağlamak için mumamo modunda birkaç değişiklik yapmak zorunda kaldım, burada açıklanan: bugs.launchpad.net/nxhtml/+bug/626039/comments/5 . Eve döndükten sonra burada bir cevapla devam edeceğim ve ne yaptığımı hatırlayacağım.
Erik Iverson


3
@daroczig - İlginç. README's Warning! 'De "Okuryazar programlama arka uçları yok" ile ne demek istediğine dair herhangi bir fikriniz var ! Bölüm?
Josh O'Brien,

4
@ JoshO'Brien Vitalie'nin temel yardım duyurusunda, ne demek istediğini açıklıyor: "Rnw sadece bir polimoddur. Okuryazar programlama arka uçtan kastım, dosyayı işleyebilen / başka bir şeye dönüştürebilen bir araçtır. Knitr veya org- Bu günlerde ess-swv-weave ve ess-swv-PDF'yi R ile ilgili çok modlu haritalara bağlayacağım. Knitr uğraştığı şeyleri tanıyacak kadar akıllı olduğu için bu zaman için oldukça iyi olmalı. "
Erik Iverson

Yanıtlar:


3

Bu yardımcı olabilir: http://sjp.co.nz/posts/emacs-ess-knitr/

ESS aracılığıyla Emacs'de Knitr markdown


Üzgünüm ama bu referans yanlış. Şu anda Emacs- ESS'nin Rmd belgeleri için vurgulama özelliği yoktur, hatta basit işaretleme yoktur (ve bu arada bağlantılı makaleniz bunu iddia etmez). Birincisine gelince, polimoda ve ikinci markdown.el'e ihtiyacınız var. Ayrıca, tek istediğiniz ESS motorunu Sweave'den knitr'e geçirmekse (vurgulamadan!), Bu makalenin tüm karmaşıklıklarından (setq ess-swv-processor 'knitr)geçmenize gerek yok , sadece init dosyasını ekleyin .
antonio

2

Senin sorunun

Her şeyden önce, GNU Emacs 23.3.1'e sahip olduğunuzu söylüyorsunuz, ancak içinde polymode readme.mdşunu okur:

Emacs 24.3.1 ve 24.4.5 ile test edilmiştir.

Hatanıza gelince: "Dosya: renk yüklenemiyor", içinde polymode.elsatır var:

(require 'color)

bu paket Emacs 24'tür, ancak sizin sürümünüzde gözden kaçabilir.

Çözüm

  1. Emacs'in yeni (bu nedenle desteklenen) bir sürümüne yükseltin.

  2. Özü polymode.zip Eğer örneğin Emacs malzeme tutmak bir dizinde:

    ~\conf\emacs

ve ortaya çıkan polymode-masterdizini şu şekilde değiştirin:polymode

  1. Bunu init dosyanıza ekleyin (ve yukarıda farklı isimler kullandıysanız, aşağıdaki isimleri buna göre değiştirin):

    ;; 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 dosyası açık olduğunda veya modu ayarladığında <!-- Local Variables: -->
    ... üretkenliğinizdeki dramatik değişikliğin tadını çıkarın.

Not
: Son elisp satırını gözden kaçırmayın. Markdown'ı düzgün bir şekilde kaydetmeye izin verecektir. Aksi takdirde, belgenizi yeniden açtığınızda, hoş olmayan sürprizlerle karşılaşırsınız.

Windows kullanıcılarına bir not

Bir Linux kullanıcısıysanız bunu atlayın, ancak soruya Ubuntu'dan bahsetmesine rağmen, cevabım Windows Emacs için de mükemmel bir şekilde geçerlidir. Sadece şunlarla ilgili olarak:

  • Adım 2) polymode.zip dosyasını şuradan çıkaracaksınız :

    %USERPROFILE%\conf\emacs

    Tahmin edebileceğiniz gibi,% USERPROFILE% ortam değişkeni, kullanıcı profili dizininizin yolunu içerir. Ne olduğundan emin değilseniz set USERPROFILE, CLI isteminde çalıştırın .
    Bir Windows kullanıcısı olarak, bir şeyler depolamak için kullanılabilirsiniz My Documents. Bu durumda dizininiz şöyle olacaktır:

    %USERPROFILE%\Documents\conf\emacs
  • Adım 3) Adım 2'de yolu kullandıysanız %USERPROFILE%\Documents\conf\emacs, ilk kod satırını şundan buna göre değiştirin:

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

    to (eğik çizgilere dikkat edin):

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

    Her iki durumda da ("Belgelerim" olan ve olmayan), daha çok Windows stilini tercih edebilirsiniz:

    (setq MY-EMACS (substitute-in-file-name "$USERPROFILE/Documents/conf/emacs")) 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.