我正在编写python代码,并且我面临着{
和}
移动键的烦人问题:段落的vim定义是"块由空行隔开"。
但是,当我在python中编写一个类时,我喜欢在方法之间保持缩进,所以是否有一种简单的方法可以将段落移动到这样的移动:
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
和{
类似
但有更简单的方法吗?
答案 0 :(得分:3)
@romainl发布的解决方案很好,但你可能也想看看假名的textobj-user。它是定义text objects的框架。除此之外,有一个plugin使用它来定义Python的文本对象,而后者又具有跨函数和类移动的键。人们写了很多其他similar plugins。
答案 1 :(得分:2)
默认的python ftplugin已经重新定义[m
和]m
以跳转到上一个和下一个^\s*\(def\|class\)
。