使用vim重新排序方法

Sam*_*ron 4 vim

我在源文件中有2个方法:

def Foo
  puts "hello"
  puts "bar" 
end 

def Bar
  puts "hello"
  puts "bar" 
end
Run Code Online (Sandbox Code Playgroud)

我想交换方法的顺序,所以Bar是第一个.

假设光标在d in上def Foo,简单的方法是:

shift v -> jjjj -> d -> jjj -> p -> O -> esc 

但是这种感觉有点长,并且不适合任意长的方法:

在Vim中最有效的方法是什么?击键明智?

编辑 请记住,我希望解决方案能够解决方法在大类环境中的情况,因此G最好避免使用

drr*_*lvn 15

假设光标在第一种方法中的某个位置,按dap}p,它们应该被交换.

什么dap只是"删除一个段落".尝试:help object-select学习在VIM中删除/选择文本对象的其他方法.

编辑:替换G}的命令.

  • 您可以使用`dap} p`(将`G`替换为`}`移动到下一个方法而不是文件的末尾,从而处理第二个方法之后有更多代码的情况. (2认同)
  • 解释dap:'a'字符,在可视模式下或在操作符之后,允许您选择对象.p代表段落,所以dap =删除段落.你可以说das删除一个句子,依此类推.在vim帮助中查找文本对象选择以获取更多信息. (2认同)