我们说我有以下Python代码:
if conditionOne():
if conditionTwo():
foo = bar
foo += 1
bar -= 2
如果我稍后删除conditionTwo
,我想要删除块的三行,以便它看起来与我的所有其他代码一致。通常情况下,我只需要=%
(我的主要语言是C ++),但这不会在这里工作,所以我在块的第一行尝试了3==
。这导致了这个:
if conditionOne():
foo = bar
foo += 1
bar -= 2
那不是我想要的。我本可以使用3<<
并获得更好的结果,但这不是我通常使用的命令。我宁愿不必为Python记住特殊的缩进命令。本着Don't Make Me Think的精神,有没有办法让=
过滤器与我期望的Python代码一起使用?
答案 0 :(得分:3)
在C或C ++中,缩进程序不会影响其行为,而在Python中它确实可以,因为缩进是流控制的一部分。
因此在Python中,具有不同缩进的程序将具有不同的行为,对于编辑器,无法猜测开发人员是否想要缩进行(在内部作用域中)。
因此,编辑器的自动缩进功能旨在使用类似C语言,而不是Python。
答案 1 :(得分:0)
如果你使用vim-indent-object插件,你可以执行以下操作来删除该行并使用该块:
<iidd
<aidd
考虑到这一点,也许您可以:nmap =% <ii
和:nmap == <ai
并根据需要删除条件。这不是一个完美的解决方案,但它似乎是一个不错的选择。