摆脱emacs要求添加换行的烦人消息

时间:2016-02-24 04:07:39

标签: emacs latex org-mode

我正在使用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

谢谢!

1 个答案:

答案 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-modeoutline-mode启用时包含一行代码如下:text-mode。变量text-mode在库(set (make-local-variable 'require-final-newline) mode-require-final-newline)中定义,默认值为mode-require-final-newline

既然我们已经做了尽职调查,我们可以从几个不同的角度来解决问题。我们可以通过将files.el更改为tmode-require-final-newline来更改t的全球价值。或者,我们可以保留与nil

相关的新用户配置缓冲区   
(setq mode-require-final-newline nil)