Ответ 1
Это может помочь: http://sjp.co.nz/posts/emacs-ess-knitr/
Утрата Knitr в Emacs через ESS
Есть ли какая-либо модификация существующего инструмента или нового инструмента, который будет синтаксически выделять (цветные) блоки R-кода в документе уценки knitr при открытии в Emacs?
В кусках ящика, которые я рассматриваю, входят блоки с тройным обратным ходом [```]
, содержащие внутри R-код.
ИЗМЕНИТЬ: вещи, которые я пробовал до сих пор:
- Ubuntu 12.04 с Emacs 23
emacs --version
GNU Emacs 23.3.1
1. ПОЛИМОДА
https://github.com/vitoshka/polymode/issues/3
Я пытаюсь заставить polyode синтаксически выделить мои файлы Rmd, но он жалуется на файл загрузки "color":
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-буфер:
Cannot open load file: color
- CentOS с Emacs 24:
emacs --version
GNU Emacs 24.2.1
1. Правильно установлен Polymode
Откройте файл Rmd, M-x polymode-minor-mode
, никаких изменений в подсветке синтаксиса.
emacs --version
GNU Emacs 24.3.1
1. Правильно установлен Polymode
Откройте файл Rmd, M-x poly-markdown+r-mode
, некоторые из подсветки синтаксиса начнут появляться, но мне нужно вручную изменить тест в каждом блоке кода с тройным типом, чтобы он полностью отображал синтаксис.
Второе изображение сразу же после ввода Return перед блоком knitr.
Это может помочь: http://sjp.co.nz/posts/emacs-ess-knitr/
Утрата Knitr в Emacs через ESS
Прежде всего, вы говорите, что у вас есть GNU Emacs 23.3.1, но в polymode
readme.md
он читает:
Протестировано с помощью Emacs 24.3.1 и 24.4.5.
Что касается вашей ошибки: "Не удается открыть файл загрузки: цвет", в polymode.el
есть строка:
(require 'color)
этот пакет находится в Emacs 24, но он вполне может отсутствовать в вашей версии.
Перейдите к недавней (поэтому поддерживаемой) версии Emacs.
Извлеките polymode.zip в каталог, в котором вы сохраняете материал Emacs, например:
~\conf\emacs
и измените результирующий polymode-master
dir на polymode
Добавьте это в свой файл инициализации (и если вы использовали разные имена выше, измените имена ниже соответственно):
;; 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
, когда Rmd файл открыт или задан режим в <!-- Local Variables: -->
... наслаждайтесь резким изменением производительности.
PS
Не пропустите последнюю линию elisp. Это позволит правильно сохранить уценку. В противном случае, когда вы снова откроете свой документ, у вас будут неприятные сюрпризы.
Пропустите это, если вы парень Linux, но, несмотря на вопрос, касающийся Ubuntu, мой ответ также отлично подходит для Windows Emacs. Только в отношении:
Шаг 2) Вы извлечете polymode.zip в:
%USERPROFILE%\conf\emacs
Как вы думаете, переменная среды% USERPROFILE% содержит путь к вашему каталогу профиля пользователя. Если вы не знаете, что это такое, выполните set USERPROFILE
в командной строке.
В качестве пользователя 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"))