2013-10-03 32 views
1

paredit關閉輪(通常必然要關閉括號)結合了兩件事情:什麼時候是親信關係的組合性質有用?

  1. C-M-- C-M-u

  2. 刪除一些空間

的文檔的功能有這簡單的例子:

(a b |c ) 
-> 
(a b c)| 

我看爲什麼C-M-- C-M-u是有用的;在C-x C-e之前使用它很有用,而且我也明白了爲什麼刪除這些空格的命令可能會有用,但我不明白爲什麼會有將這兩者結合的命令。必須有一個我缺少的使用場景,這可以解釋爲什麼空間清潔功能特別添加到paredit-close-round,但不添加到其前向對象paredit-backward-up

+0

Just fyi ... paredit-forward-up綁定到C-M-n,你不需要使用帶有前綴的C-M-u來使用它。 – Malabarba

回答

3

paredit-close-paren這意味着你已經完成了對sexp的編輯,所以任何留在最後的空白都應該被刪除。另外,它綁定了一個「編輯」鍵(close-paren),所以它可以改變緩衝區內容。

paredit-forward-up(或帶有負前綴的向後移動)是移動命令,所以它不應該更改緩衝區內容。

這裏有一個用例:(點在|

(let ((hi t))| 
    (forward-char 1) 
) 
  1. 如果你完成編輯該let聲明,那麼換行符(在forward-char後)應該被刪除,所以你打),這會讓你走出let並清理它很好。
  2. 如果你還沒有編輯let,但你現在想移出它,那麼你實際上可能想要保留那個換行符(它可以讓它更容易移動到正確的位置,它可以幫助你請記住還有未完成的業務),因此您使用C-M-n代替,這會將您從let移出,而無需編輯任何內容。