Vim和Paredit - 为什么换行会将右括号推到下一行?

时间:2016-03-07 17:13:45

标签: vim clojure

我使用vim用paredit.vim来编辑Clojure,并注意到我能想象的是预期的行为:当做一个简单的换行符时,右括号总是被推到下一个例如:

(if true
  "hello"
  )

而不是我期望的:

(if true
  "hello")

屏幕截图视频:http://d.pr/v/14S8F/4Z8gkHOA

我已禁用除vundleparedit.vim以外的所有其他插件以确保安全,并且它正在发生。我使用vim 7.4macvim 7.4的结果相同。

我错了,或者这是paredit的预期行为?

修改

虽然所选答案确实设置了我期望的功能,但@amalloy的评论确实回答了这是paredit的预期功能,而:help paredit确实澄清了这一点:

  

如果g:paredit_electric_return开启,那么它也会在适当时重新收集电力回报。

并进一步:

  

如果非零,那么"电气回报"功能已启用。这意味着当一个    在插入模式下关闭paren之前按下,实际上是paredit   插入两个换行符,创建一个空行。额外换行消耗在   按下下一个关闭的paren。此功能允许按行编辑   在下一个(空)行中输入的子表单。   换句话说,"打开"编辑时的括号表达式,')'   "关闭"他们。   请注意,如果Slimv,REPL缓冲区的电动返回被禁用   选项| g:slimv_repl_simple_eval |非零。在这种情况下使用   将命令行发送到swank服务器进行评估。

1 个答案:

答案 0 :(得分:3)

禁用electric return

:let g:paredit_electric_return=0