.emacs 中区分大小写的 setq 无效

Posted

技术标签:

【中文标题】.emacs 中区分大小写的 setq 无效【英文标题】:setq of case-sensitivity in .emacs has no effect 【发布时间】:2011-03-17 20:46:01 【问题描述】:

我的 .emacs 文件中有很多自定义内容:字体、颜色、窗口大小、键绑定等。所有这些都有效。

最后,我只是添加了一个:(setq case-fold-search nil)。这是一个变量,当设置为 nil 时,应该在所有 emacs 模式下使搜索区分大小写。它不适合我。

在单个缓冲区中将case-fold-search 设置为nil 有效,但是当我在.emacs 中设置它时,它不起作用。 .emacs 中的 setq 声明有时可能不起作用是否有原因?我应该如何尝试调试问题?

【问题讨论】:

(setq-default 'case-fold-search nil) 我发现我必须删除 ' 否则该语句将不起作用(在 .emacs 中) 【参考方案1】:

这是缓冲区局部变量的正常行为。 setq-default 可用于为它们建立默认值。

您可以通过查看其文档来确定变量是缓冲区本地的,使用 C-h v case-fold-search(或 M-x describe-variable),其中这个案例报告(注意第 4 行)

case-fold-search is a variable defined in `buffer.c'.
Its value is t

  Automatically becomes buffer-local when set in any fashion.

Documentation:
*Non-nil if searches and matches should ignore case.

You can customize this variable.

【讨论】:

另请注意,C-h v case-fold-search RET 会告诉您变量是否为缓冲区本地。 谢谢,很好的回答。你们摇滚。

以上是关于.emacs 中区分大小写的 setq 无效的主要内容,如果未能解决你的问题,请参考以下文章

Visual C++ 中区分大小写的短语搜索

Emacs:符号作为变量的值是无效的

导航栏在 Visual Studio 2017 中区分大小写

Spark 中区分大小写的连接

通过 Hibernate 在 Linux 中区分 MySQL 大小写

Emacs Lisp 中 setq 和 setq-default 的区别