2015-07-19 31 views
3

我正在编写python代码,并且我面临着一个恼人的问题,{}移动键:段落的vim定义是“由空行分隔的块”。 然而,当我在Python代码类,我想保持方法之间的缺口,那么有没有一种简单的方法来做到段落动来动这样的:vim,改变“段落分隔符”的定义

class A: 
    def f(): #cursor here, when I type {, go between f and g 
    return 1 

    #the previous line is indented 
    def g(): 
    return 2 

当然,它总是可以重新映射}因为这样做

let a = @/ 
normal /\S\n\s*$/ 
normal j 
let @/ = a 

{到类似 但有一个更简单的方法的功能?

回答

2

默认的python ftplugin已经重新定义了[m]m跳转到上一个和下一个^\s*\(def\|class\)

+0

是的......我不知道'[m',ty :) –

3

@romainl发布的解决方案很好,但您可能也想看看Kana的textobj-user。这是一个定义text objects的框架。除此之外,还有一个plugin,它使用它来为Python定义文本对象,而该对象又具有跨越函数和类的键。人们写了很多其他的similar plugins