摆脱 emacs 要求添加换行符的烦人消息
Get rid of the annoying message of emacs asking to add newline
我正在使用 org-mode 生成我的 PDF 报告。每次生成 tex 时,emacs 都会询问我
Buffer hw1.tex<2> does not end in newline. Add one? (y or 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
谢谢!
[以下解决方案在没有用户配置的情况下进行了测试——即,Emacs -Q——使用 Emacs 24.5.1。尝试在没有用户配置的情况下加载 Emacs,然后添加解决方案并进行测试。然后尝试使用完整的用户配置——如果它不能使用完整的用户配置,则可能需要将代码一分为二并注释掉,直到找到罪魁祸首。仅对 require-final-newline
.]
的用户配置进行单词搜索可能会更容易
截至 Emacs 轴承版本号 24.5.1 的最后一个稳定 public 版本,require-final-newline
的默认值为 nil
。该变量的文档字符串(部分)指出“某些主要模式将其本地设置为从 mode-require-final-newline
. 获得的值”函数 basic-save-buffer
在库 files.el
在决定用 (and require-final-newline (y-or-n-p (format "Buffer %s does not end in newline. Add one? " (buffer-name))))
提示用户时检查 require-final-newline
的值(以及其他标准)。在没有用户配置的情况下启用 org-mode
——例如,Emacs -Q——require-final-newline
的值设置为 locally 在缓冲区中为 t
。 org-mode
的PARENT模式为outline-mode
; outline-mode
的 PARENT 模式是 text-mode
。 text-mode
启用后包含一行代码,如下所示:(set (make-local-variable 'require-final-newline) mode-require-final-newline)
。变量mode-require-final-newline
定义在库files.el
中,默认值为t
.
现在我们已经完成了尽职调查,我们可以从几个不同的角度来解决这个问题。我们可以通过将 t
更改为 nil
来更改 mode-require-final-newline
的全局值:(setq mode-require-final-newline nil)
。或者,我们可以保留与 org-mode
:
相关的新用户配置缓冲区本地
(defun my-org-mode-config-fn ()
(setq require-final-newline nil))
(add-hook 'org-mode-hook 'my-org-mode-config-fn)
我正在使用 org-mode 生成我的 PDF 报告。每次生成 tex 时,emacs 都会询问我
Buffer hw1.tex<2> does not end in newline. Add one? (y or 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
谢谢!
[以下解决方案在没有用户配置的情况下进行了测试——即,Emacs -Q——使用 Emacs 24.5.1。尝试在没有用户配置的情况下加载 Emacs,然后添加解决方案并进行测试。然后尝试使用完整的用户配置——如果它不能使用完整的用户配置,则可能需要将代码一分为二并注释掉,直到找到罪魁祸首。仅对 require-final-newline
.]
截至 Emacs 轴承版本号 24.5.1 的最后一个稳定 public 版本,require-final-newline
的默认值为 nil
。该变量的文档字符串(部分)指出“某些主要模式将其本地设置为从 mode-require-final-newline
. 获得的值”函数 basic-save-buffer
在库 files.el
在决定用 (and require-final-newline (y-or-n-p (format "Buffer %s does not end in newline. Add one? " (buffer-name))))
提示用户时检查 require-final-newline
的值(以及其他标准)。在没有用户配置的情况下启用 org-mode
——例如,Emacs -Q——require-final-newline
的值设置为 locally 在缓冲区中为 t
。 org-mode
的PARENT模式为outline-mode
; outline-mode
的 PARENT 模式是 text-mode
。 text-mode
启用后包含一行代码,如下所示:(set (make-local-variable 'require-final-newline) mode-require-final-newline)
。变量mode-require-final-newline
定义在库files.el
中,默认值为t
.
现在我们已经完成了尽职调查,我们可以从几个不同的角度来解决这个问题。我们可以通过将 t
更改为 nil
来更改 mode-require-final-newline
的全局值:(setq mode-require-final-newline nil)
。或者,我们可以保留与 org-mode
:
(defun my-org-mode-config-fn ()
(setq require-final-newline nil))
(add-hook 'org-mode-hook 'my-org-mode-config-fn)