aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-11-01 00:43:20 -0400
committerJustin M. Keyes <justinkz@gmail.com>2019-11-01 13:43:20 +0900
commit471427d045f74fa9d2e47b2975ef178e719c2ae8 (patch)
tree2a3bf3f62e0c9ad9215f6f1acd0ee90eaaa4acaa /src/nvim/normal.c
parentefaf4732e26e2f0fbfab947296141376223b30d7 (diff)
downloadrneovim-471427d045f74fa9d2e47b2975ef178e719c2ae8.tar.gz
rneovim-471427d045f74fa9d2e47b2975ef178e719c2ae8.tar.bz2
rneovim-471427d045f74fa9d2e47b2975ef178e719c2ae8.zip
vim-patch:8.1.2231: introduce gM command #11321
Problem: Not easy to move to the middle of a text line. Solution: Add the gM command. (Yasuhiro Matsumoto, closes vim/vim#2070) https://github.com/vim/vim/commit/8b530c1ff91f07cf6b0289a536992b7dfbc86598
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r--src/nvim/normal.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index d1c6362931..2ef2c3101f 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -6749,6 +6749,22 @@ static void nv_g_cmd(cmdarg_T *cap)
curwin->w_set_curswant = true;
break;
+ case 'M':
+ {
+ const char_u *const ptr = get_cursor_line_ptr();
+
+ oap->motion_type = kMTCharWise;
+ oap->inclusive = false;
+ i = (int)mb_string2cells_len(ptr, 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. */