vim,更改"段落分隔符"定义

时间:2015-07-19 11:03:40

标签: vim

我正在编写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

{类似 但有更简单的方法吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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