一行代码让Emacs的搜索变的真正方便

来自reddit 代码只有一行

1
(setq search-whitespace-regexp ".*?")

这行代码让Emacs的搜索时的空白字符为任意字符 也就是说 搜索时任意字符都可以用空格代替 这样说不太好理解 举个栗子

搜索search-whitespace-regexp这个变量时 如果是默认的设置必须加- 用了现在的设置后就可以直接输入search w搜索到了 省去了输入分隔符

当然 这么设置有些激进 不太适合作为默认设置 有两个可选的解决方案

  • 设置这个值为[-_ \n\r\t]+ 相对保守了
  • 把应用这个设置的搜索绑定一个快捷键 reddit给的代码类似下面的样子
1
2
3
4
5
6
(global-set-key
(kbd "M-s s")
(lambda ()
(interactive)
(let ((search-whitespace-regexp ".*?"))
(call-interactively 'isearch-forward))))