我想在一行的开头搜索 x 个空格,使用交互式常规搜索 ^SPC<
选择以可变数量的空格开头的所有行。根据 emacs wiki
(setq search-whitespace-regexp " ")
应该可以解决这个问题,但这会逆转行为:当我在搜索中输入多个空格时,它会选择一个空格。我不记得早期 emacs 的这种行为(现在使用 23.2)。有没有办法让交互式搜索输入一个空格时选择一个空格,输入x个空格时选择x个空格?
干杯 杰伦
最佳答案
我认为您观察到的行为是预期行为。来自 search-whitespace-regexp
的文档:
If non-nil, regular expression to match a sequence of whitespace chars. [...] When you put a space or spaces in the incremental regexp, it stands for this.
请注意第二句 - 每当您在正则表达式中放置一个(或多个)空格字符时,系统都会将其解释为您输入了 search-whitespace-regexp
的值。由于您将该变量定义为单个空格字符,因此正则表达式中的一个或多个空格字符将仅匹配缓冲区中的单个空格字符。
实现您想要的效果的最简单方法可能是简单地将变量设置为 nil
,在这种情况下,在交互式正则表达式搜索中不再以特殊方式处理空格字符。正则表达式中的单个空格字符将仅匹配缓冲区中的单个空格字符。
(setq search-whitespace-regexp nil)
关于regex - emacs 空间正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770104/