From 18871c3f2b96e76269f5c5e4bbf102808b69bd42 Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Sun, 28 Mar 2021 13:19:26 +0100 Subject: vi: 'G'/'M' commands move to first visible character The 'G' command with no target (meaning 'go to last line') should position the cursor on the first visible character of the line, as it already does in other cases. The 'M' command should position the cursor on the first visible character (as 'H' and 'L' already do). function old new delta do_cmd 4842 4853 +11 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 11/0) Total: 11 bytes Signed-off-by: Ron Yorston Signed-off-by: Denys Vlasenko --- editors/vi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/editors/vi.c b/editors/vi.c index 47b13b3..f4da380 100644 --- a/editors/vi.c +++ b/editors/vi.c @@ -3596,6 +3596,7 @@ static void do_cmd(int c) if (cmdcnt > 0) { dot = find_line(cmdcnt); // what line is #cmdcnt } + dot_begin(); dot_skip_over_ws(); break; case 'H': // H- goto top line on screen @@ -3652,6 +3653,7 @@ static void do_cmd(int c) dot = screenbegin; for (cnt = 0; cnt < (rows-1) / 2; cnt++) dot = next_line(dot); + dot_skip_over_ws(); break; case 'O': // O- open a empty line above // 0i\n ESC -i -- cgit v1.1