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

kev*_*kev 17 python vim

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

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

Chr*_*sen 25

我还没有太多机会使用它,但迈克尔史密斯的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.
Run Code Online (Sandbox Code Playgroud)

将光标放在第2,4或5行上,键入Vii以选择第2行至第5行.
将光标置于第3行,键入Vai以选择第2行至第3行.
将光标置于第3行,键入Vaiii(或Viiii),以选择行2到5(在可视模式下,缩进对象的多次使用将选择扩展到下一级别的上/下).

它定义的文本对象是:

  • ai:
    当你想要获取介绍行时,当前缩进级别加上上面的行有用(例如抓住if它的"then"块)
  • ii:当前缩进级别
  • aI:当前缩进级别加上上面的一行和下面的一行
    对于使用"end"语句的语言非常有用:if/ endif).
  • iI:当前缩进级别(有效ii,并且iI相同)

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


Pet*_*ete 7

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

  • 它是否正确?`{}`用于段落,并将移至下一个空白行. (3认同)