我使用vim編輯的Clojure與paredit.vim和我注意到我不能想象是預期的行爲:做一個簡單的換行符時,右括號總是被推到了下一行,例如:Vim和Paredit - 爲什麼換行符會將右括號括在下一行?
(if true
"hello"
)
什麼,而不是我所期望的:
(if true
"hello")
一個擷取畫面視頻:http://d.pr/v/14S8F/4Z8gkHOA
我已禁用比vundle
以外的所有其他插件和paredit.vim
要安全,並且正在發生。我正在使用vim 7.4
和macvim 7.4
,結果相同。
我是否誤認爲或者這是paredit的預期行爲?
編輯
雖然選擇的答案確實設置我期待的功能,從@amalloy評論確實回答,這是paredit的預期功能,並在:help paredit
它並澄清這一點:
如果g:paredit_electric_return處於打開狀態,那麼它也會在適當時重新收集電力回報。
,並進一步:
如果非零,則 「電動回報」 功能被啓用。這意味着當在插入模式下關閉paren之前按下 時,paredit實際上會在 之間插入兩條換行符以創建空行。額外的換行消耗在 按下下一個關閉的paren。此功能允許在下一行(空行)中輸入的 子表單的行編輯。 換言之,「編輯時打開」括號表達式,')' 「關閉」它們。 請注意,如果Slimv 選項| g:slimv_repl_simple_eval |是非零的。在這種情況下,使用 將命令行發送到swank服務器進行評估。
您是否嘗試過用比其他形式的'if'?例如,像「foo」這樣的一些製造廢話。 paredit.vim可能預測你的'if'將有兩個分支,因此爲你分配兩行。 – amalloy
啊,這是一個合理的可能性,但它仍然在做,即使只用'foo':https://d.pr/v/1lO3V/4ycJhsVW – waffl