2011-04-24 96 views
2

我想使用交互式常規搜索在行首搜索x空格^SPC<選擇所有以可變數量空格開始的行。根據維基emacs的emacs空間正則表達式搜索

(setq search-whitespace-regexp " ") 

要解決這一問題,但是反轉的行爲:它選擇了一個空間,當我在我的搜索輸入多個空格。我不記得早期emacs的這種行爲(現在使用23.2)。有沒有辦法讓交互式搜索在輸入一個空格時選擇一個空格,在輸入x空格時選擇x空格?

歡呼 的Jeroen

+0

我剛纔碰到了這個(在emacs 24中)。我很高興這很容易禁用。如果我想匹配多個空格,我會自己使用「*」。這比我想或者需要emacs更「幫助」。 – Chris 2014-03-12 15:04:34

回答

4

我認爲你觀察到的行爲是預期的行爲。從search-whitespace-regexp文檔:

如果非空,正則表達式匹配 空白字符的序列。 [...]當您在增量式正則表達式中放置一個空格或空格 時,爲此它代表 。

注意第二句 - 當你在你的正則表達式,就好像您輸入的search-whitespace-regexp的值被解釋把單個(或多個)空格字符(S)。由於您將該變量定義爲單個空格字符,因此正則表達式中的一個或多個空格字符只會匹配緩衝區中的單個空格字符。

也許最簡單的方式來實現你想要的是這樣簡單地將該變量設置爲nil,在這種情況下,空格字符不再互動的正則表達式搜索一種特殊的方式處理。正則表達式中的單個空格字符只會匹配緩衝區中的單個空格字符。

(setq search-whitespace-regexp nil) 
+0

@Thomas:我嘗試了這一點,但正則表達式增量搜索確實(看起來)和以前一樣。我錯過了什麼嗎? – phimuemue 2011-04-24 11:52:04

+0

@phimuemue,我不知道 - 我也試過了,它適用於我。 – Thomas 2011-04-24 12:16:16

+0

@phimuemue,但是,我使用Emacs 23.1.1,和博士。傑裏寫道他/他在23.2中觀察到了新的行爲。 – Thomas 2011-04-24 14:30:19

1

你可以嘗試^[ ]\{5\}<得到線與5位,隨後是<開始。