如何在 vim 中获取“屏幕行”行号?

如何在 vim 中获取“屏幕行”行号?

我知道在 VIM 中你可以使用 :set number,但如果一行换行,那么它仍然算作一行。这就是 vim 所称的逐行。

我可以使用 和 以“屏幕线”的方式上下移动,gj因此gk即使一行在屏幕上换行到多行,它也会在屏幕上一次上下移动一行,但如果我想以屏幕行方式删除接下来的 30 行,最好有屏幕行数字。

这可能吗/我该怎么做?

答案1

几乎所有 Vim 命令都针对物理行,而不是软换行的屏幕行。这就是为什么像 这样的功能'relativenumber'也计算物理行的原因。您的编辑任务不应该严重依赖gj/导航gk。尝试以下替代方案之一:

  • 如果可能,请重新格式化文档,使其行数更短。:autocmd如果磁盘上的格式无法更改,您甚至可以定义 s 来在加载/保存时断开/重新组合行数。
  • 使用视觉模式(与j和/或一起使用gj)迭代选择区域。由于您可以直接看到受影响的区域,因此这也应该相当快。

如果你真的想要基于屏幕行数的编号,你可以采用旧的RelativeNumber 插件通过模拟上述选项标志柱,并修改该插件以显示屏幕线条。不过,这仍然是一种相当粗糙的体验。

相关内容