当我向下滚动页面时,相对编号不再基于光标位置。
而是显示相对于屏幕顶部的行位置。
有时我想删除或拉出 200 行,我不想做减法和加法来计算我的文本有多少行。
即使在滚动时,如何向光标显示相对行号?
当我向下滚动页面时,相对编号不再基于光标位置。
而是显示相对于屏幕顶部的行位置。
有时我想删除或拉出 200 行,我不想做减法和加法来计算我的文本有多少行。
即使在滚动时,如何向光标显示相对行号?
我想你想要的是,你用鼠标滚动,并期望 vim 将光标保持在原来的位置。例如,您的光标位于第 5 行,并且向下滚动 5000 行,您希望光标仍位于第 5 行。也就是说,光标在窗口外。
AFAIK,光标不会离开窗口。这意味着,如果您继续向下滚动,光标行将是当前窗口的顶行。并且 rnu 将由光标线重新计算。
也许你可以解释一下你想做什么。您的问题中的案例可以由200dd
or完成,200Y
但我想这并不那么简单。
您可能希望通过阅读/扫描文本行来找出结束行,然后选择行号 (rnu),xxxdd
如果是这种情况,请执行 a。在这里你应该使用正常的行号。例如,您的光标位于第 5 行,并且向下滚动很多,找到要删除的行,直到从第 5 行开始。您可以执行:5,.d
vim will delete from line 5 to your current line
.
或者,5, 23452d
如果您发现需要删除 5 和 23452 之间的行,您也可以这样做。
如果你可以通过/pattern
搜索来搜索你的结束行,vim 可以这样做:.,/foo/d
将从当前行删除到下一行,匹配foo
.
您仍然可以按V
进入逐行视觉模式,并通过 vim-motions 向下移动。当它到达您要删除/yand按的点时Y or d
你可以看看这个问题/答案: VIM to delete a range of lines into a register
最后,我建议你不要在 vim 中使用鼠标。
这可能是因为当您向下滚动页面时光标会向下移动一页。在 vim 中,光标总是在屏幕上。如果您使用鼠标滚轮向下滚动,则光标只会“卡在”顶行(模数scrolloff
)并在您继续向下滚动时停留在那里。
也许使用在滚动之前ShiftV开始基于行的视觉选择,然后在选择上使用d或y?