[英]emacs space regex search
我想在一行的开头搜索x个空格,使用交互式常规搜索^SPC<
选择以可变数量的空格开头的所有行。 根据emacs Wiki
(setq search-whitespace-regexp " ")
应该解决这个问题,但是这会逆转行为:当我在搜索中输入多个空格时,它将选择一个空格。 我不记得以前的emacs(现在使用23.2)的这种行为。 有没有一种方法可以使交互式搜索在输入一个空格时选择一个空格,而在输入x个空格时选择x个空格?
欢呼耶隆
我认为您观察到的行为是预期的行为。 从search-whitespace-regexp
的文档中:
如果不为null,则使用正则表达式来匹配一系列空白字符。 [...]当您在增量正则表达式中放置一个或多个空格时,就代表了这一点。
请注意第二句话-每当您在正则表达式中添加单个(或多个)空格字符时,该解释就如同您输入search-whitespace-regexp
的值一样。 由于您已将该变量定义为单个空格字符,因此正则表达式中的一个或多个空格字符将仅与缓冲区中的单个空格字符匹配。
因此,可能最简单的方法是将变量设置为nil
,在这种情况下,在交互式正则表达式搜索中不再以特殊方式处理空格字符。 正则表达式中的单个空格字符将仅与缓冲区中的单个空格字符匹配。
(setq search-whitespace-regexp nil)
您可以尝试^[ ]\\{5\\}<
以获得以5个空格开头的行,然后是<
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.