我的问题是:
case-fold-search
设置为t
(不区分大小写)。 thisisaverylongword
(搜索字符串)。ThisIsAVeryLongWord
(正确)。case-fold-search
设置为nil
(区分大小写)。ThisIsAVeryLongWord
(错误)。要让case-fold-search
正常工作,我必须重新输入一个新命令。
有没有办法避免这种情况?
答案 0 :(得分:2)
这不是我发生的事情。请提供emacs -Q
的明确食谱。
这就是我所看到的:
emacs -Q
M-x set-variable RET case-fold-search RET t RET
C-s ; searches insensitively
M-x set-variable RET case-fold-search RET nil RET
C-s ; searches sensitively
<强>更新强>
抱歉,我错过了你只是使用 C-s C-s 。这不仅重用相同的搜索字符串,而且重用相同的搜索状态。只需使用 M-e 来“编辑”最后一个搜索字符串,并且不对其进行任何更改(只需再次点击 C-s )。这将获得case-fold-search
的最新值。
IOW:
emacs -Q
M-x set-variable RET case-fold-search RET t RET
C-s ; searches insensitively
M-x set-variable RET case-fold-search RET nil RET
C-s M-e C-s ; searches last search string sensitively
(如果您已经感到困惑并且不想冒更进一步的混淆,请忽略这一点。 ;-)如果没有,可能会有所帮助。)
如果您使用库Isearch+,那么您可以选择w / r / t如何处理布尔选项。
使用vanilla Isearch,任何即时切换都只影响当前的Isearch调用(即,退出Isearch并再次启动它将恢复为保存的选项值的行为,无论可能是什么)。
使用 Isearch + ,布尔选项 isearchp-toggle-option-flag
可控制切换行为的命令是否也切换关联的用户选项。对于此类命令,前缀参数将翻转行为,就像暂时切换isearchp-toggle-option-flag
一样。目前,此功能适用于切换 M-c (区分大小写)和 M-s i (匹配隐藏文本)。
您可以在Isearch期间切换选项isearchp-toggle-option-flag
, M-s v 。
答案 1 :(得分:2)
我不会手动更改case-fold-search
变量。以下是我处理区分大小写和不敏感搜索的方法:
thisisaverylongword
ThisIsAVeryLongWord
(正确)isearch
ThisIsAVeryLongWord
不匹配(正确)isearch-toggle-case-fold
,abo-abo in the comments