在特定模式emacs下设置变量

时间:2016-07-25 10:49:38

标签: emacs latex

希望在乳胶模式下设置变量。我们的想法是在latex模式下设置的值将覆盖customize部分中设置的相同变量的值。我是emacs的新手,所以这些是我的尝试:

    (add-hook 'LaTeX-mode-hook '(setq line-move-visual t))
    (add-hook 'latex-mode-hook (lambda () (setq line-move-visual t)))

为什么这些不起作用?我该怎么做呢?

澄清:寻找设置变量(setq line-move-visual t),因为我将其设置为(setq line-move-visual nil)所有其他文件

1 个答案:

答案 0 :(得分:5)

如果你只是setq LaTeX-mode-hook中的变量,它也会对任何其他开放缓冲区产生影响。可以使更改仅影响当前缓冲区:

(add-hook 'LaTeX-mode-hook
      (lambda ()
        (make-local-variable 'line-move-visual)
        (setq line-move-visual nil)))

另外,请注意,Emacs中LaTeX默认模式的钩子称为latex-mode-hook,但当您使用(远远优于)AUCTeX时,钩子称为LaTeX-mode-hook

编辑:将make-variable-buffer-local更改为make-local-variable。请参阅对此答案的评论。