updated for version 7.3.1115
Problem: Many users don't like the cursor line number when 'relativenumber'
is set.
Solution: Have four combinations with 'number' and 'relativenumber'.
(Christian Brabandt)
diff --git a/src/screen.c b/src/screen.c
index cc8afa6..cf6ed73 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2329,15 +2329,17 @@
if (len > w + 1)
len = w + 1;
- if (wp->w_p_nu)
- /* 'number' */
+ if (wp->w_p_nu && !wp->w_p_rnu)
+ /* 'number' + 'norelativenumber' */
num = (long)lnum;
else
{
/* 'relativenumber', don't use negative numbers */
num = labs((long)get_cursor_rel_lnum(wp, lnum));
- if (num == 0)
+ if (num == 0 && wp->w_p_nu && wp->w_p_rnu)
{
+ /* 'number' + 'relativenumber': cursor line shows absolute
+ * line number */
num = lnum;
fmt = "%-*ld ";
}
@@ -3499,15 +3501,16 @@
long num;
char *fmt = "%*ld ";
- if (wp->w_p_nu)
- /* 'number' */
+ if (wp->w_p_nu && !wp->w_p_rnu)
+ /* 'number' + 'norelativenumber' */
num = (long)lnum;
else
{
/* 'relativenumber', don't use negative numbers */
num = labs((long)get_cursor_rel_lnum(wp, lnum));
- if (num == 0)
+ if (num == 0 && wp->w_p_nu && wp->w_p_rnu)
{
+ /* 'number' + 'relativenumber' */
num = lnum;
fmt = "%-*ld ";
}
@@ -10260,7 +10263,12 @@
int n;
linenr_T lnum;
- lnum = wp->w_buffer->b_ml.ml_line_count;
+ if (wp->w_p_rnu && !wp->w_p_nu)
+ /* cursor line shows "0" */
+ lnum = wp->w_height;
+ else
+ /* cursor line shows absolute line number */
+ lnum = wp->w_buffer->b_ml.ml_line_count;
if (lnum == wp->w_nrwidth_line_count)
return wp->w_nrwidth_width;