【问题标题】:Emacs: setting "comment-column" for all buffersEmacs:为所有缓冲区设置“comment-column”
【发布时间】:2014-07-18 01:03:02
【问题描述】:

我正在尝试将 comment-column 局部变量默认设置为 70,以便为我打开的每个缓冲区。

我认为我唯一需要做的就是将以下行放入我的 .emacs 文件中,然后重新加载 Emacs:

(setq-default comment-column 70)

但是,当我重新启动 Emacs 时,它仍然设置为 40。

我也尝试过类似的方法:

(set-default 'comment-column 70)

我显然遗漏了一些明显的东西,但我找不到什么。我认为对于局部变量,例如comment-column,有些我不知道。

【问题讨论】:

  • 对我来说很好,显然你有一个足够新的 Emacs 版本,可以使用setq-default,否则你会看到错误;所以我只能假设某些东西随后会设置不同的值。检查您是否没有通过customize 接口设置值,并在您的setq-default 之后进行评估。
  • @phils 很奇怪。不,我没有这种东西。我还把它放在.emacs 文件的末尾以防万一,但还是一样。今天晚些时候将通过删除部分代码来继续我的调试......等等......直到我希望看到错误:)
  • 请用emacs -Q 启动emacs,然后试试M-: (setq-default comment-column 70)。之后打开你的测试文件,看看comment-column 的值是多少。请将您打开的文件添加到问题描述中以测试评论列。这很重要,因为行为取决于模式(请参阅下面的答案)。

标签: emacs


【解决方案1】:

我引用了comment-column上的帮助:

文档:将右边距 cmets 缩进到的列。 每种模式 可以为此变量建立不同的默认值;你可以设置 使用该模式的钩子的特定模式的值。 注释可能 缩进到不同的值,以免超出 `comment-fill-column' 或为了使它们与周围对齐 厘米。

粗体部分会是问题吗?

我已经在我家试过了。在那里,大多数编程模式使用全局默认值,而modelica-mode 使用自己的默认值。

【讨论】:

  • 据我所知,粗体文本只是对这个变量被定义为自动缓冲区本地的事实的引用。因此,它可以在每个缓冲区的基础上具有不同的值。使用模式挂钩来设置它可以确保每个相关缓冲区都获得 same 值(但如果您随后在一个缓冲区中更改它,它不会影响其他缓冲区)。换句话说,正常的缓冲区本地行为是我在这里所期望的。
  • 也就是说,是的,在这些情况下,任何设置变量的代码自然都会影响该值,但是在这样的缓冲区中的C-h v 会告诉您该值是否为 默认值 i> 值,或缓冲区本地值。
猜你喜欢
  • 2011-01-06
  • 2011-05-31
  • 2011-11-04
  • 2011-03-25
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多