如何使用Vim选择Python代码块?

时间:2011-12-31 03:54:23

标签: python vim

我可以使用vi{va{来选择C ++代码块。当我需要猛拉/删除它时,它对我有很大的帮助。

但是Python使用缩进来表示代码块。我找不到更好的方法。有什么想法吗?

4 个答案:

答案 0 :(得分:24)

我还没有太多机会使用它,但Michael Smith的vim-indent-object听起来可能接近你想要的。

示例用法(行号显示为set number有效):

  1 This is
  2   some text
  3     with multiple
  4   levels of
  5   indentation.
  6 There is also
  7     another stanza.

将光标放在第2,4或5行上,键入Vii以选择第2行到第5行 将光标放在第3行,键入Vai以选择第2行到第3行 将光标放在第3行,键入Vaiii(或Viiii),选择第2行到第5行(在可视模式下,多次使用缩进对象会将选择范围扩展到上一个/下一个级别)。 / p>

它定义的文本对象是:

  • ai:当前缩进级别加上上面的行 当您想要获取介绍性行时有用(例如抓住if及其“然后”块)
  • ii:当前缩进级别
  • aI:当前缩进级别加上上面的一行和下面的一行 对于使用“结束”语句的语言非常有用:if / endif)。
  • iI:当前缩进级别(实际上,iiiI相同)

对象也可以与期望文本对象的其他命令一起使用(即cii删除当前缩进级别并开始插入其替换)。

答案 1 :(得分:6)

我只是按v获取视觉模式,然后()。这将带您进入下一个空白行。如果您正好格式化,那应该对应于您的代码块。

答案 2 :(得分:1)

您可以显示行(:set nu),然后转到代码块开始的行(:lineNumber)并将它们拉出来。

答案 3 :(得分:0)

对于python,我通常使用" zM"折叠整个文件,然后" 2yy"拉动整个功能。

如果你的功能在某个班级内,你可以使用" zc"而不是" zM"

您需要在〜/ .vimrc中添加以下行以使zM / zc正常工作:

autocmd FileType python set foldmethod=indent