当我使用 Latex 和 R 代码滚动浏览 Sweave 文档 (Rnw) 时,当模式在 Latex 和 ESS 之间切换时,文本会跳来跳去。这两种模式不同意文本应该如何换行。此外,我注意到当我这样做时
- Mx toggle-truncate-lines 可在光标位于乳胶代码中时截断长行
- 将光标移动到 R 代码
- 返回乳胶代码
截断长线模式不再开启。有没有人注意到这一点?有没有人解决过这个问题?
通过阅读 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))))
您可以为 longlines-mode 或 toggle-truncate-lines 等设置类似的钩子,以满足您的需求。此解决方案的缺点是您被挂钩中设置的变量的单个值所困扰。