當使用Paredit,我經常面臨着以下時,爲了避免多餘的空格字符(管道符代表光標):如何啜第一表達
(foo |bar baz)
我想請用括號bar
,所以我用paredit-wrap-around
(中號 - ()得到這個:
(foo (|bar) baz)
同樣適用,當我想要把欄中顯示的字符串,而不是裏面,我可以使用中號 - 「得到這個:
(foo "|bar" baz)
然而,Clojure中也使用方括號[]
和花括號{}
爲載體,地圖和套。這些似乎沒有paredit'wrap around'命令。所以在這種情況下,例如把巴到載體,我通常使用[鍵來創建一個新的向量:
(foo [|] bar baz)
後跟一個paredit-forward-slurp-sexp
(Ç - →),這導致:
(foo [| bar] baz)
我想刪除在bar
之前插入的空格字符。這可能嗎?爲什麼從空表達式轉換到包含一個項目時,paredit保留一個空格字符?不應該將第一個項目添加到S表達式總是被推向正確的方向嗎?
這個假設可能是你要把新東西放在新列表的頭部。我想你可以使用組合C- 和C-d。 –
d11wtq
我必須提到,最新的信任版20130722.1324(來自MELPA)的'paredit-forward-slurp-sexp'會自動刪除空格字符。所以你可以按'[C-]'來獲得'[bar]'。另外,'[''綁定到'paredit-open-square'這是一個dwim命令:選擇一個表達式並按'''會將該表達式包裝到一個向量中。所以按下'C-M-SPC ['是另一種方式。我使用後一種方式,因爲它更直觀,我可以改變主意來選擇兩個表達式,並且在autopair模式下以非lisp緩衝區和paredit模式下的lisp緩衝區保持相同的習慣。 –