在Vim中同时显示相对和绝对行号

mt3*_*mt3 44 vim

有没有什么办法来显示这两个 相对绝对的Vim的同时在线人数?无论是并排,还是其他一些有趣的演示都可以.

Ora*_*ain 34

是的你可以.使用RltvNmbr.vim显示相对数字,并使用Vim显示绝对数字:

在此输入图像描述

  • 启用这个插件真的会减慢整个 vim 例如当通过 j/k 更改行时.. (2认同)

小智 15

当设置"relativenumber"和"number"时,Vim 7.4(补丁7.3.787)将显示绝对行号而不是"0".

:h relativenumber,7.3

设置此选项时,"数字"将重置.

:h relativenumber,7.4

光标行前面的数字也取决于'number'的值,参见| number_relativenumber | 对于两个选项的所有组合.


Chr*_*gan 7

合理地说,你不能.行号是每缓冲一个,仅由'number'选项控制.

我尝试过一个疯狂的想法::vertical diffsplit加上:setlocal relativenumber.这使得缓冲区的两个副本彼此相邻,在滚动位置链接,因为它们处于diff模式.但是,它确实无法正常工作.相对数字没有成功更新(在7.3.154,后面可能修复的bug,但我怀疑它 - 它几乎不值得),即使它们确实如此,你仍然会被一个伟大的眼睛和更难的管理和导航困住.

你可以用一个插件写入一个特殊的缓冲区,你会保留在左边,但实现会很难看,而且它仍然会导致导航很难(因为它是另一个缓冲区).我一个人肯定不会花时间写这样的插件,虽然我必须承认我想展示两种形式的行号.

  • @ mt3你可能有兴趣回到thia问答并看到一个插件解决方案已经发布作为答案 (2认同)

all*_*lar 6

许多年后,这个特性现在是 Vim 的一部分,被称为混合数。

您可以通过输入以下内容来打开此功能:

:set number relativenumber
Run Code Online (Sandbox Code Playgroud)

也没有速度惩罚。据我所知。


go2*_*ull 5

plnxMacario的答案与vim 7.4 结合起来.

autocmd WinEnter,FocusGained * :setlocal number relativenumber
autocmd WinLeave,FocusLost   * :setlocal number norelativenumber
Run Code Online (Sandbox Code Playgroud)

这将在聚焦窗口中显示相对编号(当前行为绝对值),在非聚焦窗口中显示绝对值.