GNUEmacs/ESS/Latex/Sweave:当游标在乳胶代码或R代码中时,文本显示不同

jrm*_*jrm 6 emacs latex r ess sweave

当我使用latex和R代码滚动Sweave文档(Rnw)时,当Latex和ESS之间的模式发生变化时,文本会跳转.这两种模式不同意文本应该如何包装.而且,当我这样做时,我注意到了

  1. Mx toggle-truncate-lines用于在游标位于latex代码中时截断长行
  2. 将光标移动到R代码
  3. 回到乳胶代码

截断的长行模式不再打开.有没有人注意到这个?有人解决了这个问题吗?

jrm*_*jrm 4

通过阅读 ess-help@r-project.org 邮件列表上的类似问题,这就是我所了解到的。当我们滚动浏览 noweb 文件时,我们正在将主要模式从 ESS 切换到 LaTeX。大多数主要模式都会在初始化过程中杀死所有局部变量,因此当我们只是在本地设置变量时,它就会被覆盖。为了解决这个问题,我修改了我发现的一个钩子:

(add-hook 'LaTeX-mode-hook '(lambda () (if (string-match "\\.Rnw\\'" buffer-file-name) (setq fill-column 80))))
Run Code Online (Sandbox Code Playgroud)

您可以为longlines-mode或toggle-truncate-lines等设置类似的钩子,以满足您的需求。此解决方案的缺点是您只能使用挂钩中设置的变量的单个值。