regex - emacs 空间正则表达式搜索

标签 regex search emacs

我想在一行的开头搜索 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/

相关文章:

javascript - 正则表达式拆分为大写和第一个数字

javascript - 正则表达式匹配文本区域中的换行符

如果只输入一个字母,PHP 搜索结果会输出不同的结果

swift - 创建搜索栏时出错 : Initializer for conditional binding must have Option type, 而不是 'String'

javascript - Emacs 在缓冲区中打印 javascript 对象属性或对象轮廓

emacs - 在 -nw 模式下,emacs 中的 windows 键

emacs - 如何使用预定义窗口启动 Emacs?

正则表达式,匿名所有匹配,每行有 1 个强制匹配和各种可选匹配

javascript - 格式化电子邮件正文的 JSON

JavaScript - 打开新页面并在其中搜索