knitr Markdown destacando en Emacs?
syntax-highlighting (2)
Tu problema
En primer lugar, dices que tienes GNU Emacs 23.3.1, pero en polymode
readme.md
, lee:
Probado con Emacs 24.3.1 y 24.4.5.
En cuanto a su error: "No se puede abrir el archivo de carga: color", en polymode.el
, hay una línea:
(require ''color)
este paquete está en Emacs 24, pero bien podría fallar en tu versión.
Solución
Actualice a una versión reciente (por lo tanto compatible) de Emacs.
Extraiga el polymode.zip en un directorio donde guarde el material de Emacs, por ejemplo:
~/conf/emacs
y cambie el polymode-master
dir polymode
a polymode
Agregue esto en su archivo init (y si usó diferentes nombres arriba, cambie los nombres debajo de acuerdo a esto):
;; 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)
Meta + rmd cuando el archivo Rmd está abierto o configura el modo en
<!-- Local Variables: -->
... disfruta de un cambio dramático en tu productividad.
PD
No pase por alto la última línea de elisp. Permitirá guardar el descuento correctamente. De lo contrario, cuando vuelvas a abrir tu documento, tendrás sorpresas desagradables.
Una nota para los usuarios de Windows
Omita esto si es un tipo de Linux, pero, a pesar de la pregunta, mencione Ubuntu, mi respuesta también se aplica perfectamente a Windows Emacs. Solo con respecto a:
Paso 2) polymode.zip en:
%USERPROFILE%/conf/emacs
Como usted adivina, la variable de entorno% USERPROFILE% contiene la ruta a su directorio de perfil de usuario. Si no está seguro de qué se trata, ejecute
set USERPROFILE
en el indicador CLI.
Como usuario de Windows, puede que esté acostumbrado a almacenar cosas enMy Documents
. En ese caso, tu directorio será:%USERPROFILE%/Documents/conf/emacs
Paso 3) Si en el Paso 2) usó la ruta
%USERPROFILE%/Documents/conf/emacs
, cambie la primera línea de código de la siguiente manera:(setq MY-EMACS "~/conf/emacs")
para (tenga en cuenta las barras):
(setq MY-EMACS "~/Documents/conf/emacs")
En ambos casos (con y sin "Mis documentos"), es posible que prefiera más estilo de Windows:
(setq MY-EMACS (substitute-in-file-name "$USERPROFILE/Documents/conf/emacs"))
¿Hay alguna modificación de una herramienta existente o de una nueva herramienta que resalte los bloques de sintaxis (color) del código R en un documento de reducción de knitr cuando se abre en Emacs?
Los trozos de Knitr que estoy viendo son bloques de triple backtick [```]
que contienen código R en el interior.
EDITAR: cosas que probé hasta ahora:
- Ubuntu 12.04 con Emacs 23
emacs --version
GNU Emacs 23.3.1
1. Polymode
https://github.com/vitoshka/polymode/issues/3
Estoy tratando de hacer que polymode sintaxis-resalte mis archivos Rmd, pero se queja de un archivo de carga de ''color'':
cd ~/.emacs.d
git clone https://github.com/vitoshka/polymode.git
En mi archivo .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 con Emacs 24:
emacs --version
GNU Emacs 24.2.1
1. Polymode instalado correctamente
Abra un archivo Rmd, Mx polymode-minor-mode
, sin cambios en el resaltado de sintaxis.
emacs --version
GNU Emacs 24.3.1
1. Polymode instalado correctamente
Abra un archivo Rmd, Mx poly-markdown+r-mode
, algunos de los resaltados de sintaxis comienzan a aparecer, pero necesito modificar manualmente la prueba en cada bloque de código triple para que muestre completamente la sintaxis.
La segunda imagen es justo después de escribir una devolución antes del bloque knitr.
Esto podría ayudar: http://sjp.co.nz/posts/emacs-ess-knitr/
Rebaja de Knitr en Emacs a través de ESS