vim将内部列表移出封闭列表
我正在使用Vim编辑Clojure代码,我正在尝试paredit,因为一旦掌握了诀窍,Emacsen通常会谈论它在Emacs中有多好 如果我有一个将lambda传递给函数的表达式:vim将内部列表移出封闭列表,vim,paredit,Vim,Paredit,我正在使用Vim编辑Clojure代码,我正在尝试paredit,因为一旦掌握了诀窍,Emacsen通常会谈论它在Emacs中有多好 如果我有一个将lambda传递给函数的表达式: (wrapper-func (fn [] whatever)) 我想改变它,这样我只剩下内部lambda: (fn [] whatever) 使用paredit的正确方法是什么?我一直感到沮丧,于是又开始用手平衡双腿。我通常可以删除列表中的“wrapper func”元素,最后是: ((fn [] whateve
(wrapper-func (fn [] whatever))
我想改变它,这样我只剩下内部lambda:
(fn [] whatever)
使用paredit的正确方法是什么?我一直感到沮丧,于是又开始用手平衡双腿。我通常可以删除列表中的“wrapper func”元素,最后是:
((fn [] whatever))
但是,似乎无法从paredit的帮助中删除外部或内部参数。:
<Leader>I Raise the current symbol, i.e. replace the current list with
the current symbol by deleting everything else (except the
symbol) in the list, including the eclosing pair of parens.
For example pressing <Leader>I at position marked with |:
(aaa (b|bb ccc) ddd) ---> (aaa |bbb ddd)
然后按I
请参阅
:help paredit
的更多信息,这里介绍了如何在不使用paredit.vim的情况下执行此操作:
将光标放在此处:
(wrapper-func (fn [] whatever))
^
然后键入:
y%
:要将内部父级复制到剪贴板
v2a(
:要选择外部父级
p
用剪贴板替换外部父对象
注1:v2a(
可替换为hva(
或vha(
)以将光标从内部父级中取出:a(
正在选择外部父级
注2:如果您不想包含符号(
和)
,请使用i(
)而不是a(
)
注3:如果将
y%
替换为d%
,则v2a(可以替换为va(
),因为外部父级变为当前父级。只需少敲一次键。但是,如果在键入时系统崩溃,则可能会丢失内部父级的内容。,或者我们可以通过将光标保持在以下位置来完成此操作:
(wrapper-func (fn [] whatever))
^
执行以下按键笔划
d{(%x
谢谢。我本来想用I
的,但是我的光标放错了地方。请完成我的工作!
(wrapper-func (fn [] whatever))
^