给出一个python文件,下面不断重复:
def myFunction(a, b, c):
if a:
print b
elif c:
print 'hello'
Run Code Online (Sandbox Code Playgroud)
我想使用熟悉的vim移动来移动并编辑此文件.例如,使用(,),[[,]],{,}或使用像di这样的命令删除/ yanking /更改文本.
在其他语言(如C++,Java,C#等)中,你有大括号,因此使用像di这样的运动可以很容易地找到匹配的大括号并对该块进行操作.事实上,如果我在上面的文本中使用'b'字符并在vim中执行di),它会成功删除两个parens之间的文本.
我认为问题在于python检测代码块.使用(,),[[,]],{或}作为动作几乎都做同样的事情,带你到开始(在def线上方或在def线上)或结束(在函数的最后一行之后)功能.据我所知,没有办法轻易告诉vim"为这个缩进块选择所有东西." 在上面的例子中,我想进入if行的'i',输入di}并删除整个if块(到这个特定函数的末尾).
我确信应该可以告诉vim在缩进的基础上进行这样的动作(好吧,也许不是那个特定的动作,而是一些用户定义的动作).有关如何实现这一点的任何想法?