Saturday, June 1, 2013

Relative line numbering and current line

I've been distressed by the direction the discussion on the addition
of the absolute line number to the relative line number functionality
has gone. More specifically, I don't see enough champions of relative
numbering fighting to keep it useful and economical and I'm afraid the
discussion with die before fixing the current state of things.
Perhaps the problem is that relative number users are too small a
minority to fight for themselves. The addition of the current
absolute line number to relative line numbering is a serious usability
regression for relative numbering and I would hate for it to make it
into 7.4 as it is.

From what I can tell, the hasty discussion that added the absolute
line number to the current relative line columns was motivated by the
fact that leaving a zero there wastes two characters of screen space
without any benefit besides looking nice and drawing the eye. Further
argument is that some people don't have the line number in their
statusline and may want to know what the current line number is with
some frequency.

1. Taking line numbers out of the status line and ruler line is a
choice the user can make, and one that I have to think a small number
of people choose. They aren't forced not to know where they are in
the file and can easily put that information in the status or ruler
without any loss of functionality.

2. The current line number is not all that important a piece of
information for a relative line number user. I jump around, copy
blocks, and do many other things with relative line numbering
constantly and I have never typed the number of my current line.
That's what the dot is for. Knowing the line number of nearby lines
could be useful, but that's one advantage of absolute line numbers
that relative line number users choose to sacrifice.

3. Having that fat number in the numbering column increases its width.
Instead of wasting two characters of space with a zero, we now waste
one or two (or more) whole columns all the time and there is no way a
relative line user can avoid this waste. Relative and absolute
numbering are both useful, but I chose relative line numbering largely
because it never occupies more than two columns of screen space while
absolute numbers suck up way more (and take a different amount of
space depending on where I am in the file).

4. I can live with poor aesthetics, especially if it provides really
useful functionality, but adding a big fat absolute number to the
column without any option to remove it is a major visual wart that
doesn't add significant information or functionality.

The discussion of how to solve this regression keeps getting shut down
because people point out that Bram (again hastily, I think) said we
don't need to provide options for everything, which many have
interpreted has him being unwilling to fix this problem. But I think
it is against the spirit of vim that we should remove useful
functionality (non-wasteful relative line number functionality) that
people depend on without at least giving them some backwards
compatibility. I have a hard time imagining who would choose to have
the absolute line number in that column after using it for a while.
Those who do must be a small group indeed. The discussion should be
about whether we want to add an additional option to include the
current line number in order to benefit this small group, not whether
or not we need to preserve the existing functionality by adding an
option to undo the broken-ness that was just recently introduced.

Adding an absolute line number to relative line numbering sounds like
a cute idea. I was for it until I started using it. But in practice
it introduces the downsides of absolute numbering to relative
numbering without bringing the upsides. It's a pretty serious step
backwards. Whether it gets reverted or an additional option added to
use the 0 again doesn't matter to me, as long as vim gets changed back
to full usefulness without me having to patch my local copy all the
time. The worst choice would be to leave this wasteful eyesore in
(and include it in 7.4) with no option for people to remove it besides
ceasing the use of relative line numbering altogether.

Let's not benefit the few at the expense of the many.
Grant

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: