2012-09-10 33 views
4

在Vim中,我想直观地选择一些行,然后粘贴一个注释掉的选择副本,位于原始选择的上方或下方,具体取决于视觉选择是向上还是向下创建的。所以如果我在第100行开始视觉模式并将光标向上移动10行,那将是一个向上的视觉选择,而如果我从第100行开始并将光标向下移动10行,则它将是向下选择。 line("'<")line("'>")在两种情况下都是相同的,所以看起来Vim总是选择较小的数字作为选择开始。有没有办法确定视觉选择是向上还是向下?是否可以确定Vim中视觉选择的方向?

回答

2

当(在映射/命令)首先退出视觉模式经由<Esc>,可以比较光标(line('.'))与'<'>马克的位置/线。然后,只需使用标记(即使在可视模式下,它们也会保留其值),或者通过:normal! gv重新选择。

0

你可以把一个标志,你开始选择之前,另一个当你离开的选择:

ma 
V 
jjj 
<Esc> 
mb 

,然后如果line("'a") < line("'b")看到。

相关问题