我想使用交互式常規搜索在行首搜索x空格^SPC<
選擇所有以可變數量空格開始的行。根據維基emacs的emacs空間正則表達式搜索
(setq search-whitespace-regexp " ")
要解決這一問題,但是反轉的行爲:它選擇了一個空間,當我在我的搜索輸入多個空格。我不記得早期emacs的這種行爲(現在使用23.2)。有沒有辦法讓交互式搜索在輸入一個空格時選擇一個空格,在輸入x空格時選擇x空格?
歡呼 的Jeroen
我想使用交互式常規搜索在行首搜索x空格^SPC<
選擇所有以可變數量空格開始的行。根據維基emacs的emacs空間正則表達式搜索
(setq search-whitespace-regexp " ")
要解決這一問題,但是反轉的行爲:它選擇了一個空間,當我在我的搜索輸入多個空格。我不記得早期emacs的這種行爲(現在使用23.2)。有沒有辦法讓交互式搜索在輸入一個空格時選擇一個空格,在輸入x空格時選擇x空格?
歡呼 的Jeroen
我認爲你觀察到的行爲是預期的行爲。從search-whitespace-regexp
文檔:
如果非空,正則表達式匹配 空白字符的序列。 [...]當您在增量式正則表達式中放置一個空格或空格 時,爲此它代表 。
注意第二句 - 當你在你的正則表達式,就好像您輸入的search-whitespace-regexp
的值被解釋把單個(或多個)空格字符(S)。由於您將該變量定義爲單個空格字符,因此正則表達式中的一個或多個空格字符只會匹配緩衝區中的單個空格字符。
也許最簡單的方式來實現你想要的是這樣簡單地將該變量設置爲nil
,在這種情況下,空格字符不再互動的正則表達式搜索一種特殊的方式處理。正則表達式中的單個空格字符只會匹配緩衝區中的單個空格字符。
(setq search-whitespace-regexp nil)
你可以嘗試^[ ]\{5\}<
得到線與5位,隨後是<
開始。
我剛纔碰到了這個(在emacs 24中)。我很高興這很容易禁用。如果我想匹配多個空格,我會自己使用「*」。這比我想或者需要emacs更「幫助」。 – Chris 2014-03-12 15:04:34