【发布时间】:2012-03-23 17:59:15
【问题描述】:
在 vim 中,我喜欢使用相对行号来查看需要拉出、删除多少行。
但是,当使用相对行号时,当前行是 0,这意味着,如果我想拉到编号为 3 的行,我必须输入 4yy,这有点违反直觉并且会减慢我的速度。
有没有办法显示从 1 而不是 0 开始的相对行号?
【问题讨论】:
标签: vim line-numbers
在 vim 中,我喜欢使用相对行号来查看需要拉出、删除多少行。
但是,当使用相对行号时,当前行是 0,这意味着,如果我想拉到编号为 3 的行,我必须输入 4yy,这有点违反直觉并且会减慢我的速度。
有没有办法显示从 1 而不是 0 开始的相对行号?
【问题讨论】:
标签: vim line-numbers
AFAIK 没有...或者您可以查看 vim 并修改它的源代码。
【讨论】:
不,这是不可能的,因为行号是相对的。当前行下方的第一行正确编号为 1,当前行上方的第一行也是如此。
同意,当您使用 yy、dd 等命令时,您必须做一些数学运算。
【讨论】:
我会说,与系统一起工作。您可以修改以按预期使用动作,而不是使用“重复”:
y3j 而不是 4yy
您会注意到 yank 命令执行了一个动作。 yy 仅在您不想要运动时作为快捷方式(根据定义,它采用当前 line)。
从某种意义上说,做 4yy 有点尴尬('4times' 占据了整条线;你依赖于 implict 运动有效地乘以重复的事实,它不是' t 自然,因为动作是隐式)。
从好的方面来说,你甚至可以将它组合起来:4d3j(连续删除 3linesdown 4 次,不是一个很有用的例子)
【讨论】:
y4k),而不必先将光标向上移动四行,然后使用 4yy 向下复制