我经常使用.
键重复我的上一个vim命令。我想知道是否有办法将它与使用标记执行的命令一起使用。这是一个简单的例子:
m'a
5j
>'a
- 缩进6行 .
在相同的6行重复上述命令 - 仅影响第1行 使用.
命令时,有没有办法让vim应用上一个命令的相同标记范围?
PS。我知道上面的示例可以更容易使用6>>
,它与.
一起使用,我只是以它为例。我经常使用标记来表示更复杂/更长的命令。
答案 0 :(得分:1)
问题是你重复的命令是>'a
,但由于规则“在应用操作符后,光标主要留在操作文本的开头”(来自{{ 1}}),:help operator
将光标留在标记>'a
,如果它高于您的起始位置。然后,当你重复a
时,你最终会从该线到自身的直线运动,这只会重新缩进一行。
由于您处于文本块的开头,要再次影响同一文本块,您可以使用>'a
(线性)或']
(charwise)运动到受影响的文本块的 end 。因此,您可以使用`]
再次缩进同一个块,并且由于此次光标在同一位置开始和结束,您可以使用>']
重复一次。
更简单的选择是使用.
代替V5j>
。 ma5j>'a
在您当前位置启动可视模式(线性),V
向下移动5行,然后5j
缩进。当您重复使用>
时,相同的视觉选择仍然属于您,无论您是向上还是向下移动,都可以获得所需的结果。