Pra*_*ani 9 emacs r noweb org-mode ess
R在.Rnw文档中使用代码块时,emacs缓冲区会自动检测到光标位于代码块内(即内部<<>>和@),并切换到ESS模式 - 这非常有价值,因为可以在内部进行基于ESS的代码格式化代码块,更有用的是,可以将代码行/区域发送到下级*R*进程缓冲区.
如何在R代码块中的组织模式文件中(即#+begin_src R和之间#+end_src)获得相同的功能- 我希望emacs能够在R代码块中自动识别它,并打开ESS模式以便我可以发送片段代码的*R*过程.我知道我可以做Ctl-C '并切换到不同的ESS模式缓冲区,在那里我可以编辑代码并获得所有其他ESS模式的便利(包括发送代码R).不过,我想没有要做到这一点,即我希望能够从R代码块发送代码片段在同一组织模式缓冲区.
AFAIK,这不能用 Org-mode 的当前实现来完成。
我不确定这在 Org-mode 中是否可行,而无需深入研究 elisp 代码。C-c 'Org 模式中该命令的要点是,您有一个额外的缓冲区,其中包含您想要/需要的特定语言的所有语法突出显示。
可能有一种方法可以R通过编写一些 Org 模式挂钩来解决- 特定代码的问题,该挂钩首先检查您是否在#+begin_src R...#+end_src R块中,然后检查代码块。我怀疑这会很混乱,并且会与其他 Org 模式功能发生冲突。此外,您必须编写另一个函数来获取当前代码块并将其传递给 Org-mode 的R解释器,以及您添加到代码块中的所有选项src。