dot*_*hen 5 vim python selection
如何使用 VIM 选择逻辑缩进的代码块?例如,考虑一下 Python:
01:class Foo(object):
02:
03: def __init__(self, bar):
04:
05: if 'baz' in bar:
06: print("I love baz!")
07:
08: print("You made the best choice!")
09:
10: elif 'boo' in bar:
11: print("I like boo!")
12:
13: else:
14: print("I like your choice!")
15:
16: self.choice = bar
17: self.someList = []
18:
19: print("Foo sucessfully created!")
20:
21:
22: def bim(self):
23: print("Bam boo")
24: return True
Run Code Online (Sandbox Code Playgroud)
如何选择所有常用缩进的行?也就是说,如果我在 06 行,它会选择 06-08 行(包括)?或者,如果我在第 16 行,它会选择第 05-19 行。
如何选择所有常用缩进的行以及“初始化”它的行?也就是说,如果我在 06 行,它会选择 05-08 行(包括)?或者,如果我在第 16 行,它会选择第 03-19 行。
如何轻松地将上级缩进添加到选择中?也就是说,如果我__init__选择了方法,我将如何过渡到选择整个类?
这个问题涵盖了许多其他(通常没有答案)VIM/Python 问题的一般情况,例如这个问题。我最初的倾向是悬赏这个问题,但实际上我更愿意知道这个更一般的情况,这将有助于在这种情况下和其他情况下的用户。
小智 9
看看vim-indent-object插件,它定义了一个基于缩进级别的新文本对象。它提供以下映射(取自文档):
Key Mapping Description
<count>ai (A)n (I)ndentation level and line above.
<count>ii (I)nner (I)ndentation level (no line above).
<count>aI (A)n (I)ndentation level and lines above/below.
<count>iI (I)nner (I)ndentation level (no lines above/below).
Run Code Online (Sandbox Code Playgroud)
所以:
按vii选择所有常用缩进的行
按下vai以选择所有常用缩进的行以及“初始化”它的行
请注意,选择缩进级别后,您可以再次按ii或进一步ai。例如,如果您在第 06 行并按vai,则会选择第 05-08 行。如果你ai再次按下,你会得到整个__init__()选择(即第 03-19 行)。再按ai一次将选择整个班级。
| 归档时间: |
|
| 查看次数: |
1628 次 |
| 最近记录: |