emacs空间正则表达式搜索

时间:2011-04-24 10:46:15

标签: regex search emacs

我想在一行的开头搜索x空格,使用交互式常规搜索^SPC<选择以可变数量的空格开头的所有行。根据emacs wiki

 (setq search-whitespace-regexp " ")

应该解决这个问题,但这会逆转行为:当我在搜索中输入多个空格时,它会选择一个空格。我不记得早期emacs的这种行为(现在使用23.2)。有没有办法让交互式搜索在输入一个空格时选择一个空格,在输入x空格时选择x个空格?

欢呼声 的Jeroen

2 个答案:

答案 0 :(得分:4)

我认为您观察到的行为是预期的行为。来自search-whitespace-regexp的文档:

  

如果非零,正则表达式   匹配一系列空白字符。   [...]当你放置一个或多个空格时   在增量正则表达式中,它代表着   对此。

注意第二句 - 每当你在你的正则表达式中放置一个(或多个)空格字符时,就会被解释为输入search-whitespace-regexp的值。由于您将该变量定义为单个空格字符,因此正则表达式中的一个或多个空格字符仅匹配缓冲区中的单个空格字符。

因此,实现所需内容的最简单方法可能就是将变量设置为nil,在这种情况下,在交互式regexp搜索中不再以特殊方式处理空格字符。正则表达式中的单个空格字符只匹配缓冲区中的单个空格字符。

(setq search-whitespace-regexp nil)

答案 1 :(得分:1)

您可以尝试^[ ]\{5\}<获取以5个空格开头的行,然后是<