我使用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