2

I'm trying to find a way to show relative line numbers as well as absolute line numbers, but not the way hybrid line numbers does it.

I want to see both at all times, probably each displayed on a column. Is this possible?

  • 3
    No, it's not possible – klaus Apr 11 at 0:10
  • Why not? I'm new to vim, so forgive me if I'm missing something super obvious, but if plugins such as Airline and Lightline can write a whole line to the bottom of the buffer, why wouldn't another plugin be able to write a (few) column(s) on the left? – Bruno Ely Apr 11 at 0:27
  • 2
    Airline or Lightline make clever use of the Vim option statusline (`:help 'statusline'). They don't draw the line by them self, it is drawn by Vim. There is no such option or other api for line numbers. – Ralf Apr 11 at 4:21
  • Just to remind you, there is no other editor that I know of that provides you two line number columns. Most people I know don't even use line numbers in vim, period. But that's opinion based talks. For your answers, you can add line numbers directly to your buffer and remove them prior to and re-add them after writing the buffer to disk. OR you can just enter the diff mode for the current buffer and enable :set nu in one window while enabling :set rnu in another. Then just resize the windows. But all this is really ridiculous solution to a problem which in itself is ridiculous. – klaus Apr 15 at 6:06
  • I don’t think there’s anything ridiculous about this problem. I do it in emacs. It’s useful to have line numbers (seriously, who doesn’t have line numbers enabled?) as in any other editor, so you can not only jump to a specific line but also reference said line when talking to others. It is also useful to have relative line numbers for vi-style movements. Why is wanting both visible at all times ridiculous? – Bruno Ely Apr 15 at 6:09
1

Take a look at this answer. You can use RltvNmbr to display the relative line numbers while Vim displays the absolute ones.

0

There is no way to have both absolute and relative numbers being displayed by Vim.

What you can do however, is to (ab)use the sign feature and display the relative numbers there. Note, since the sign column is limited to 2 characters, it won't work on very long windows with more than 100 lines.

There are a couple of plugins that enable it. The already mentioned RltvNmbr.vim from Dr. Chip, which was used to enable relative line numbering before that feature was available in Vim natively (around Vim 7.3 I believe). An alternative is to use my plugin DynamicSigns. This allows to flexible define what kind of signs will be drawn and when. Have a look at the example from this answer

Also, the sign column needs to be updated very often, which might impose a performance penalty. My DynamicSigns plugin tries to update the sign column as often as needed, but it might still be noticeable, if you scroll a lot. There is not much that can be done against it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.