mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 21:25:04 -07:00
'cpoptions': "_" flag to toggle cw
behaviour #6235
`cw` and `cW` behave like `ce` and `cE` respectively. This is inconsistent compared to `dw` and `dW`. Introduce a new cpoptions flag "_" to toggle the Vi behavior. Closes #6234 Patch-by: Christian Brabandt <cblists@256bit.org> References: https://github.com/chrisbra/vim-mq-patches/blob/master/cpo_changeword https://groups.google.com/d/msg/vim_use/aaBqT6ECkA4/ALf4odKzEDgJ https://groups.google.com/d/msg/vim_dev/Dpn3xtUF16I/T6JcOPKN6usJ http://www.reddit.com/r/vim/comments/26nut8/why_does_cw_work_like_ce/
This commit is contained in:
parent
59ea30adda
commit
1743df82f9
@ -401,8 +401,7 @@ a range of folded lines. "b" and "B" move to the start of the first word or
|
|||||||
WORD before the fold.
|
WORD before the fold.
|
||||||
|
|
||||||
Special case: "cw" and "cW" are treated like "ce" and "cE" if the cursor is
|
Special case: "cw" and "cW" are treated like "ce" and "cE" if the cursor is
|
||||||
on a non-blank. This is because "cw" is interpreted as change-word, and a
|
on a non-blank. This is Vi-compatible, see |cpo-_| to change the behavior.
|
||||||
word does not include the following white space.
|
|
||||||
|
|
||||||
Another special case: When using the "w" motion in combination with an
|
Another special case: When using the "w" motion in combination with an
|
||||||
operator and the last word moved over is at the end of a line, the end of
|
operator and the last word moved over is at the end of a line, the end of
|
||||||
|
@ -1829,6 +1829,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
character, the cursor won't move. When not included,
|
character, the cursor won't move. When not included,
|
||||||
the cursor would skip over it and jump to the
|
the cursor would skip over it and jump to the
|
||||||
following occurrence.
|
following occurrence.
|
||||||
|
*cpo-_*
|
||||||
|
_ When using |cw| on a word, do not include the
|
||||||
|
whitespace following the word in the motion.
|
||||||
|
|
||||||
*'cscopepathcomp'* *'cspc'*
|
*'cscopepathcomp'* *'cspc'*
|
||||||
'cscopepathcomp' 'cspc' number (default 0)
|
'cscopepathcomp' 'cspc' number (default 0)
|
||||||
|
@ -108,6 +108,7 @@ Some `CTRL-SHIFT-...` key chords are distinguished from `CTRL-...` variants
|
|||||||
<C-Tab>, <C-S-Tab>, <C-BS>, <C-S-BS>, <C-Enter>, <C-S-Enter>
|
<C-Tab>, <C-S-Tab>, <C-BS>, <C-S-BS>, <C-Enter>, <C-S-Enter>
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
'cpoptions' flags: |cpo-_|
|
||||||
'inccommand' shows interactive results for |:substitute|-like commands
|
'inccommand' shows interactive results for |:substitute|-like commands
|
||||||
'statusline' supports unlimited alignment sections
|
'statusline' supports unlimited alignment sections
|
||||||
'tabline' %@Func@foo%X can call any function on mouse-click
|
'tabline' %@Func@foo%X can call any function on mouse-click
|
||||||
|
@ -7193,8 +7193,10 @@ static void nv_wordcmd(cmdarg_T *cap)
|
|||||||
// Another strangeness: When standing on the end of a word "ce" will
|
// Another strangeness: When standing on the end of a word "ce" will
|
||||||
// change until the end of the next word, but "cw" will change only one
|
// change until the end of the next word, but "cw" will change only one
|
||||||
// character! This is done by setting "flag".
|
// character! This is done by setting "flag".
|
||||||
|
if (vim_strchr(p_cpo, CPO_CHANGEW) != NULL) {
|
||||||
cap->oap->inclusive = true;
|
cap->oap->inclusive = true;
|
||||||
word_end = true;
|
word_end = true;
|
||||||
|
}
|
||||||
flag = true;
|
flag = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,9 +129,10 @@
|
|||||||
#define CPO_REGAPPEND '>' /* insert NL when appending to a register */
|
#define CPO_REGAPPEND '>' /* insert NL when appending to a register */
|
||||||
#define CPO_SCOLON ';' /* using "," and ";" will skip over char if
|
#define CPO_SCOLON ';' /* using "," and ";" will skip over char if
|
||||||
* cursor would not move */
|
* cursor would not move */
|
||||||
/* default values for Vim and Vi */
|
#define CPO_CHANGEW '_' // "cw" special-case
|
||||||
#define CPO_VIM "aABceFs"
|
// default values for Vim and Vi
|
||||||
#define CPO_VI "aAbBcCdDeEfFiIJkKlLmMnoOpPqrRsStuvWxXyZ$!%+<>;"
|
#define CPO_VIM "aABceFs_"
|
||||||
|
#define CPO_VI "aAbBcCdDeEfFiIJkKlLmMnoOpPqrRsStuvWxXyZ$!%+<>;_"
|
||||||
|
|
||||||
/* characters for p_ww option: */
|
/* characters for p_ww option: */
|
||||||
#define WW_ALL "bshl<>[],~"
|
#define WW_ALL "bshl<>[],~"
|
||||||
|
Loading…
Reference in New Issue
Block a user