From 481bcb1dcca2bd486cfb1e803349929e832eaa23 Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Fri, 3 Apr 2015 21:27:12 -0300 Subject: Change behaviour of 'cw' and 'cW' from vim's help: cw cW Special case: When the cursor is in a word, "cw" and "cW" do not include the white space after a word, they only change up to the end of the word. This is because Vim interprets "cw" as change-word, and a word does not include the following white space. --- vis.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'vis.c') diff --git a/vis.c b/vis.c index 5303332..25b2ba0 100644 --- a/vis.c +++ b/vis.c @@ -956,6 +956,14 @@ static void movement(const Arg *arg) { action.textobj = moves_linewise[arg->i]; else action.movement = &moves[arg->i]; + + if (action.op == &ops[OP_CHANGE]) { + if (action.movement == &moves[MOVE_WORD_START_NEXT]) + action.movement = &moves[MOVE_WORD_END_NEXT]; + else if (action.movement == &moves[MOVE_LONGWORD_START_NEXT]) + action.movement = &moves[MOVE_LONGWORD_END_NEXT]; + } + action_do(&action); } -- cgit v1.2.3