【问题标题】:Emacs - setting a buffer variable in an init file [duplicate]Emacs - 在初始化文件中设置缓冲区变量[重复]
【发布时间】:2021-09-09 22:31:14
【问题描述】:

我需要在所有缓冲区中设置缓冲区变量bidi-display-reordering...由于某种原因,它的默认值不正确。在我打开的每个缓冲区中都这样做很痛苦,因此我尝试将以下行放入文件.emacs.d/init.el

(setq bidi-display-reordering nil)

然后我退出 Emacs 并重新启动它,但它没有工作。正确的做法是什么?

【问题讨论】:

  • 默认值肯定正确的。正如文档字符串所说,“将其设置为 nil 旨在用于调试显示代码。不要在正常会话中设置为 nil,因为不支持。”

标签: variables emacs buffer


【解决方案1】:

您需要使用setq-default 而不是setq。来自C-h f setq-default

(setq-default [VAR VALUE]...)

将变量 VAR 的默认值设置为 VALUE。变量名 VAR 是字面量(未计算)。 VALUE 是一个表达式:它被评估并返回它的值。变量的默认值出现在没有自己的变量值的缓冲区中。

它的语法与setq 相同,所以直接替换为:

(setq-default bidi-display-reordering nil)

【讨论】:

  • ...但正如@phils 在评论中指出的那样,将bidi-display-reordering 设置为nil 是一个BAD 的想法(除了very i> OP 正在调试显示代码的可能性不大)。因此,虽然答案在技术上是正确的,但尚不清楚它是否会帮助 OP - 事实上,相反的情况更有可能发生。
  • 感谢您的回答。但是,如果设置这个变量是一个坏主意,正如 cmets 所说,那么我应该如何解决我的问题呢?我的文件有英文和从右到左的文本,并且这个文本向后显示(每个单词都向后拼写)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 2023-04-02
  • 2015-05-27
  • 1970-01-01
相关资源
最近更新 更多