那么如果我有这样的文本:
if answer == 42 { #1
if bugs == 'bunny' { #2
if injury == 'but a scratch' { #3
// do the thing #4
} #5
} #6
} #7
我现在将光标放在// do the thing
上,然后执行va{
命令,接着我会选择从第3行到第5行的{}
,再次执行a{
命令,然后我会选择从第2行到第6行的{}
。
但是糟糕的是,我现在意识到我实际上只想选择从第3行到第5行的{}
。恐怖的是,vim通常的大写 => 相反
的方法不起作用,A{
只会在行尾添加一个{
。
我能否在不取消选择、移动光标并重新选择的情况下从大的选择中缩小到更小的选择?在这个例子中,使用一些hjklwbeo
手动更改选择也很简单,但在实践中,代码块通常又长又复杂。
我知道如果在一个父块内有多个兄弟块将会产生歧义,但我会很满意地选择第一个,因为这种情况很少发生。
谢谢!
编辑:有一个能够做到这一点的插件也是一个很好的选择。如果没有这样的插件,我会快速做一个MVP,并在此处发布链接以供评论。
A
/I
来完成他们的工作。也许制作一个插件来实现你所建议的行为会受到欢迎。 - Enlico[v
、]v
、[V
和]V
开始的之前的视觉选择,并可遍历记录。因此,在您的情况下,您只需按一下[v
即可返回先前的一个选择。该插件已经可用,但仍在建设中。 - mattb