2012-10-16 28 views
0

代替空格我有這樣如何使用[Emacs中

line 1 
    line 2 
    line 3 

輸入文件中有所有我想要更換線前四個空格。

我想最終的結果是:

A[line 1 
A[line 2 
A[line 3 

(好笑的,所以編輯並不想顯示逐行)

我試過M-x replace-regex ^[]+ -> A\[,但得到錯誤invalid regex "Unmatched [ or [^"

我試過M-x replace-regex ^[]+ -> A[,但得到同樣的錯誤。

更換[是個問題。如何解決這個問題?

+0

使用[強制](按Ctrl-K)格式化你的代碼。 ) – raina77ow

+0

'M-x replace-regexp^- > A ['工作,我想知道。 ) – raina77ow

+0

@ raina77ow - 我想刪除空格 - 但我想我可以分開做,但爲什麼這樣做? –

回答

4

嘗試

M-x query-replace-regex RET^ RET A[ RET 
          ^^^ 
          notice the 4 spaces here 

在你的例子你缺少一個空格字符類中:每一種白色空間^[[:space:]]+^[ ]+

更漂亮很可能是。

+0

哇,這是多麼愚蠢 - 我沒有注意到 - 我只是錯過了在空間打字 - 當然,它看起來像一個空間可能在那裏。 –

+0

@ user619818會發生。還要注意你的問題,用'replace-string'和'replace-regexp'(和等效的'query-'函數)。 – pmr

1

Rectangles給你另一種處理這些問題的方式。 Cua-mode提供了一個更好的系統。在*

(setq cua-enable-cua-keys nil) 
(cua-mode) 

然後,點下面的:要使用它,首先添加以下到您的.emacs

 
* line 1 
    line 2 
    line 3 

命中C-enter,並使用箭頭鍵(或C-nC-f)移動點:

 
    line 1 
    line 2 
    *line 3 

的空白都將被高亮顯示。鍵入A[來插入字符。然後點擊C-w刪除空格。

1
M-x query-replace-regex RET^+ RET A[ RET 

,因爲它是一個單一類型字符來代替,不需要支架或類