我正在使用org-mode来生成我的PDF报告。每次生成tex时,emacs都会问我
缓冲液hw1.tex< 2>不以换行结束。加一个? (y或n)y
如何摆脱此消息并自动添加新行?
我尝试将mode-require-final-newline和require-final-newline设置为t,但这并没有改变任何内容。
编辑: 我也尝试将mode-require-final-newline和require-final-newline设置为nil,即使我可以检查它们的值是否发生了变化(通过C-h v),问题仍然存在。
根据评论的建议,我添加了一个钩子来改变这些变量的值:
(add-hook' org-mode-hook(lambda() (setq require-final-newline nil) (setq mode-require-final-newline nil)))
但问题仍然存在。
编辑:
另外,我认为我找到了对此负责的命令:
(el-get 'sync my-packages)
,所以我怀疑我的配置中缺少一些我安装的软件包。
以下是我使用el-get安装的软件包列表:
auctex
auto-complete
autopair
color-theme-solarized
cdlatex-mode
ecb
ein
elpy
expand-region
flycheck
folding
gnuplot-mode
helm
helm-descbinds
jedi
js2-mode
jump-char
key-chord
latex-preview-pane
lua-mode
magit
markdown-mode
matlab-mode
multiple-cursors
;nxhtml
nyan-mode
org-mode
outshine
popup
popwin
pyenv
pydoc-info
scss-mode
yaml-mode
yasnippet
谢谢!
答案 0 :(得分:1)
[以下解决方案未经用户配置测试 - 即 Emacs -Q - 使用Emacs 24.5.1。尝试在没有用户配置的情况下加载Emacs,然后添加解决方案并进行测试。然后使用完整的用户配置进行尝试 - 如果它不能与完整的用户配置一起使用,则可能需要将代码二等分并注释掉,直到找到罪魁祸首。对require-final-newline
的用户配置进行单词搜索可能更容易。]
截至Emacs的最新稳定公开发布版本号为24.5.1,require-final-newline
的默认值为nil
。该变量的doc字符串(部分地)表明“某些主要模式将其本地设置为从mode-require-final-newline
获得的值。”库中的函数basic-save-buffer
{ {1}}在决定用files.el
提示用户时检查require-final-newline
的值(以及其他标准)。在没有用户配置的情况下启用(and require-final-newline (y-or-n-p (format "Buffer %s does not end in newline. Add one? " (buffer-name))))
- 例如, Emacs -Q 时,org-mode
的值在缓冲区中设置为 local { {1}}。 require-final-newline
的父母模式为t
;并且org-mode
的父母模式为outline-mode
。 outline-mode
启用时包含一行代码如下:text-mode
。变量text-mode
在库(set (make-local-variable 'require-final-newline) mode-require-final-newline)
中定义,默认值为mode-require-final-newline
。
既然我们已经做了尽职调查,我们可以从几个不同的角度来解决问题。我们可以通过将files.el
更改为t
:mode-require-final-newline
来更改t
的全球价值。或者,我们可以保留与nil
:
(setq mode-require-final-newline nil)