搜索忽略新行的字符串


11

我习惯于编写将段落分为几行的文件,例如使用fill-column。当我搜索C-s诸如的字符串()时this is a long text,搜索结果不会返回该字符串出现的位置,并且在两个单词之间(例如this\nis a long text)之间有换行符。

是否有一条命令也会返回这些结果?

Answers:


11

看看变量isearch-lax-whitespaceisearch-regexp-lax-whitespacesearch-whitespace-regexp

如果将前两个变量设置为非零(例如t),则搜索字符串中的任何空格字符都将匹配该search-whitespace-regexp变量定义的正则表达式匹配的任何序列。

要在换行符之间匹配单词,请执行以下操作:

(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace t)
(setq search-whitespace-regexp "[ \t\r\n]+")

现在,查询中的空格字符将与任意空格,制表符或换行符匹配任意次。


谢谢,但这对我不起作用。我的Emacs版本是23.4.1。显然,它没有“ isearch-lax-whitespace”变量。
托尼

1
是的,这些功能在Emacs 24.3中引入。是否有机会升级到最新版本?版本23.4.1已经超过三年了。
rekado 2015年

2
试试看isearch-forward-word,这是M-s w最近的Emacs 绑定的。
politza 2015年

Emacs 23不适用于我,请确保您使用的是
24。– ragerdl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.