diff src/normal.c @ 18475:709c6b0dc78f v8.1.2231

patch 8.1.2231: not easy to move to the middle of a text line Commit: https://github.com/vim/vim/commit/8b530c1ff91f07cf6b0289a536992b7dfbc86598 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Oct 28 02:13:05 2019 +0100 patch 8.1.2231: not easy to move to the middle of a text line Problem: Not easy to move to the middle of a text line. Solution: Add the gM command. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/2070)
author Bram Moolenaar <Bram@vim.org>
date Mon, 28 Oct 2019 02:15:05 +0100
parents 34d5cd432cac
children e93cab5d0f0f
line wrap: on
line diff
--- a/src/normal.c
+++ b/src/normal.c
@@ -5979,6 +5979,24 @@ nv_g_cmd(cmdarg_T *cap)
 	curwin->w_set_curswant = TRUE;
 	break;
 
+    case 'M':
+	{
+	    char_u  *ptr = ml_get_curline();
+
+	    oap->motion_type = MCHAR;
+	    oap->inclusive = FALSE;
+	    if (has_mbyte)
+		i = mb_string2cells(ptr, STRLEN(ptr));
+	    else
+		i = (int)STRLEN(ptr);
+	    if (cap->count0 > 0 && cap->count0 <= 100)
+		coladvance((colnr_T)(i * cap->count0 / 100));
+	    else
+		coladvance((colnr_T)(i / 2));
+	    curwin->w_set_curswant = TRUE;
+	}
+	break;
+
     case '_':
 	/* "g_": to the last non-blank character in the line or <count> lines
 	 * downward. */