Mercurial > vim
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. */