mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
feat(input): enable <tab>/<c-i>, <cr>/<c-m>, <esc>/<c-[> pairs unconditionally
This commit is contained in:
@@ -13,7 +13,6 @@
|
||||
#include "nvim/memory.h"
|
||||
#include "nvim/message.h"
|
||||
#include "nvim/mouse.h"
|
||||
#include "nvim/option_defs.h"
|
||||
#include "nvim/strings.h"
|
||||
#include "nvim/vim.h"
|
||||
|
||||
@@ -748,7 +747,7 @@ static int extract_modifiers(int key, int *modp)
|
||||
if ((modifiers & MOD_MASK_CTRL) && ((key >= '?' && key <= '_') || ASCII_ISALPHA(key))) {
|
||||
key = TOUPPER_ASC(key);
|
||||
int new_key = Ctrl_chr(key);
|
||||
if (!p_clbg || (new_key != TAB && new_key != CAR && new_key != ESC)) {
|
||||
if (new_key != TAB && new_key != CAR && new_key != ESC) {
|
||||
key = new_key;
|
||||
modifiers &= ~MOD_MASK_CTRL;
|
||||
if (key == 0) { // <C-@> is <Nul>
|
||||
|
@@ -401,7 +401,6 @@ EXTERN int p_cst; // 'cscopetag'
|
||||
EXTERN long p_csto; // 'cscopetagorder'
|
||||
EXTERN long p_cspc; // 'cscopepathcomp'
|
||||
EXTERN int p_csverbose; // 'cscopeverbose'
|
||||
EXTERN int p_clbg; // 'ctrldisambig'
|
||||
EXTERN char_u *p_debug; // 'debug'
|
||||
EXTERN char_u *p_def; // 'define'
|
||||
EXTERN char_u *p_inc;
|
||||
|
@@ -541,13 +541,6 @@ return {
|
||||
varname='p_csverbose',
|
||||
defaults={if_true=1}
|
||||
},
|
||||
{
|
||||
full_name='ctrldisambig', abbreviation='clbg',
|
||||
short_desc=N_(""),
|
||||
type='bool', scope={'global'},
|
||||
varname='p_clbg',
|
||||
defaults={if_true=true}
|
||||
},
|
||||
{
|
||||
full_name='cursorbind', abbreviation='crb',
|
||||
short_desc=N_("move cursor in window as it moves in other windows"),
|
||||
|
@@ -14,7 +14,6 @@ set fsync
|
||||
set laststatus=1
|
||||
set listchars=eol:$
|
||||
set joinspaces
|
||||
set noctrldisambig
|
||||
set nohidden nosmarttab noautoindent noautoread complete-=i noruler noshowcmd
|
||||
set nrformats+=octal
|
||||
set shortmess-=F
|
||||
|
@@ -185,7 +185,7 @@ func Test_let_register()
|
||||
call Assert_reg('"', 'v', "abc", "['abc']", "abc", "['abc']")
|
||||
let @" = "abc\n"
|
||||
call Assert_reg('"', 'V', "abc\n", "['abc']", "abc\n", "['abc']")
|
||||
let @" = "abc\<C-m>"
|
||||
let @" = "abc\r"
|
||||
call Assert_reg('"', 'V', "abc\r\n", "['abc\r']", "abc\r\n", "['abc\r']")
|
||||
let @= = '"abc"'
|
||||
call Assert_reg('=', 'v', "abc", "['abc']", '"abc"', "['\"abc\"']")
|
||||
|
@@ -66,22 +66,22 @@ func Test_regex_char_classes()
|
||||
let save_enc = &encoding
|
||||
set encoding=utf-8
|
||||
|
||||
let input = "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
let input = "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
" Format is [cmd_to_run, expected_output]
|
||||
let tests = [
|
||||
\ [':s/\%#=0\d//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\d//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\d//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[0-9]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[0-9]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[0-9]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\D//g',
|
||||
\ "0123456789"],
|
||||
\ [':s/\%#=1\D//g',
|
||||
@@ -95,17 +95,17 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2[^0-9]//g',
|
||||
\ "0123456789"],
|
||||
\ [':s/\%#=0\o//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\o//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\o//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[0-7]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[0-7]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[0-7]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\O//g',
|
||||
\ "01234567"],
|
||||
\ [':s/\%#=1\O//g',
|
||||
@@ -119,17 +119,17 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2[^0-7]//g',
|
||||
\ "01234567"],
|
||||
\ [':s/\%#=0\x//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\x//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\x//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[0-9A-Fa-f]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[0-9A-Fa-f]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[0-9A-Fa-f]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\X//g',
|
||||
\ "0123456789ABCDEFabcdef"],
|
||||
\ [':s/\%#=1\X//g',
|
||||
@@ -143,17 +143,17 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2[^0-9A-Fa-f]//g',
|
||||
\ "0123456789ABCDEFabcdef"],
|
||||
\ [':s/\%#=0\w//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\w//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\w//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[0-9A-Za-z_]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[0-9A-Za-z_]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[0-9A-Za-z_]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\W//g',
|
||||
\ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
|
||||
\ [':s/\%#=1\W//g',
|
||||
@@ -167,17 +167,17 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2[^0-9A-Za-z_]//g',
|
||||
\ "0123456789ABCDEFGHIXYZ_abcdefghiwxyz"],
|
||||
\ [':s/\%#=0\h//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\h//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\h//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[A-Za-z_]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[A-Za-z_]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[A-Za-z_]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\H//g',
|
||||
\ "ABCDEFGHIXYZ_abcdefghiwxyz"],
|
||||
\ [':s/\%#=1\H//g',
|
||||
@@ -191,17 +191,17 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2[^A-Za-z_]//g',
|
||||
\ "ABCDEFGHIXYZ_abcdefghiwxyz"],
|
||||
\ [':s/\%#=0\a//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\a//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\a//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[A-Za-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[A-Za-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[A-Za-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\A//g',
|
||||
\ "ABCDEFGHIXYZabcdefghiwxyz"],
|
||||
\ [':s/\%#=1\A//g',
|
||||
@@ -215,17 +215,17 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2[^A-Za-z]//g',
|
||||
\ "ABCDEFGHIXYZabcdefghiwxyz"],
|
||||
\ [':s/\%#=0\l//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\l//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\l//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[a-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[a-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[a-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\L//g',
|
||||
\ "abcdefghiwxyz"],
|
||||
\ [':s/\%#=1\L//g',
|
||||
@@ -239,17 +239,17 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2[^a-z]//g',
|
||||
\ "abcdefghiwxyz"],
|
||||
\ [':s/\%#=0\u//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1\u//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2\u//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[A-Z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[A-Z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[A-Z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0\U//g',
|
||||
\ "ABCDEFGHIXYZ"],
|
||||
\ [':s/\%#=1\U//g',
|
||||
@@ -269,11 +269,11 @@ func Test_regex_char_classes()
|
||||
\ [':s/\%#=2\%' . line('.') . 'l^\t...//g',
|
||||
\ "!\"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[0-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=1[0-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=2[0-z]//g',
|
||||
\ "\t\<C-L>\<C-M> !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ "\t\<C-L>\r !\"#$%&'()#+'-./{|}~\<C-?>\u0080\u0082\u0090\u009b<39><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"],
|
||||
\ [':s/\%#=0[^0-z]//g',
|
||||
\ "0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz"],
|
||||
\ [':s/\%#=1[^0-z]//g',
|
||||
|
@@ -177,9 +177,9 @@ func Test_sub_cmd_1()
|
||||
\ ['I', 's/I/\lII/', ['iI']],
|
||||
\ ['J', 's/J/\LJ\EJ/', ['jJ']],
|
||||
\ ['K', 's/K/\Uk\ek/', ['Kk']],
|
||||
\ ['lLl', "s/L/\<C-V>\<C-M>/", ["l\<C-V>", 'l']],
|
||||
\ ['lLl', "s/L/\<C-V>\r/", ["l\<C-V>", 'l']],
|
||||
\ ['mMm', 's/M/\r/', ['m', 'm']],
|
||||
\ ['nNn', "s/N/\\\<C-V>\<C-M>/", ["n\<C-V>", 'n']],
|
||||
\ ['nNn', "s/N/\\\<C-V>\r/", ["n\<C-V>", 'n']],
|
||||
\ ['oOo', 's/O/\n/', ["o\no"]],
|
||||
\ ['pPp', 's/P/\b/', ["p\<C-H>p"]],
|
||||
\ ['qQq', 's/Q/\t/', ["q\tq"]],
|
||||
@@ -208,9 +208,9 @@ func Test_sub_cmd_2()
|
||||
\ ['I', 's/I/\lII/', ['iI']],
|
||||
\ ['J', 's/J/\LJ\EJ/', ['jJ']],
|
||||
\ ['K', 's/K/\Uk\ek/', ['Kk']],
|
||||
\ ['lLl', "s/L/\<C-V>\<C-M>/", ["l\<C-V>", 'l']],
|
||||
\ ['lLl', "s/L/\<C-V>\r/", ["l\<C-V>", 'l']],
|
||||
\ ['mMm', 's/M/\r/', ['m', 'm']],
|
||||
\ ['nNn', "s/N/\\\<C-V>\<C-M>/", ["n\<C-V>", 'n']],
|
||||
\ ['nNn', "s/N/\\\<C-V>\r/", ["n\<C-V>", 'n']],
|
||||
\ ['oOo', 's/O/\n/', ["o\no"]],
|
||||
\ ['pPp', 's/P/\b/', ["p\<C-H>p"]],
|
||||
\ ['qQq', 's/Q/\t/', ["q\tq"]],
|
||||
@@ -230,9 +230,9 @@ func Test_sub_cmd_3()
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [['aAa', "s/A/\\='\\'/", ['a\a']],
|
||||
\ ['bBb', "s/B/\\='\\\\'/", ['b\\b']],
|
||||
\ ['cCc', "s/C/\\='\<C-V>\<C-M>'/", ["c\<C-V>", 'c']],
|
||||
\ ['dDd', "s/D/\\='\\\<C-V>\<C-M>'/", ["d\\\<C-V>", 'd']],
|
||||
\ ['eEe', "s/E/\\='\\\\\<C-V>\<C-M>'/", ["e\\\\\<C-V>", 'e']],
|
||||
\ ['cCc', "s/C/\\='\<C-V>\r'/", ["c\<C-V>", 'c']],
|
||||
\ ['dDd', "s/D/\\='\\\<C-V>\r'/", ["d\\\<C-V>", 'd']],
|
||||
\ ['eEe', "s/E/\\='\\\\\<C-V>\r'/", ["e\\\\\<C-V>", 'e']],
|
||||
\ ['fFf', "s/F/\\='\r'/", ['f', 'f']],
|
||||
\ ['gGg', "s/G/\\='\<C-V>\<C-J>'/", ["g\<C-V>", 'g']],
|
||||
\ ['hHh', "s/H/\\='\\\<C-V>\<C-J>'/", ["h\\\<C-V>", 'h']],
|
||||
@@ -254,11 +254,11 @@ func Test_sub_cmd_4()
|
||||
\ ['a\a']],
|
||||
\ ['bBb', "s/B/\\=substitute(submatch(0), '.', '\\', '')/",
|
||||
\ ['b\b']],
|
||||
\ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\<C-M>', '')/",
|
||||
\ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\r', '')/",
|
||||
\ ["c\<C-V>", 'c']],
|
||||
\ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\<C-M>', '')/",
|
||||
\ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\r', '')/",
|
||||
\ ["d\<C-V>", 'd']],
|
||||
\ ['eEe', "s/E/\\=substitute(submatch(0), '.', '\\\\\<C-V>\<C-M>', '')/",
|
||||
\ ['eEe', "s/E/\\=substitute(submatch(0), '.', '\\\\\<C-V>\r', '')/",
|
||||
\ ["e\\\<C-V>", 'e']],
|
||||
\ ['fFf', "s/F/\\=substitute(submatch(0), '.', '\\r', '')/",
|
||||
\ ['f', 'f']],
|
||||
@@ -316,7 +316,7 @@ func Test_sub_cmd_7()
|
||||
set cpo&
|
||||
|
||||
" List entry format: [input, cmd, output]
|
||||
let tests = [ ["A\<C-V>\<C-M>A", 's/A./\=submatch(0)/', ['A', 'A']],
|
||||
let tests = [ ["A\<C-V>\rA", 's/A./\=submatch(0)/', ['A', 'A']],
|
||||
\ ["B\<C-V>\<C-J>B", 's/B./\=submatch(0)/', ['B', 'B']],
|
||||
\ ["C\<C-V>\<C-J>C", 's/C./\=strtrans(string(submatch(0, 1)))/', [strtrans("['C\<C-J>']C")]],
|
||||
\ ["D\<C-V>\<C-J>\nD", 's/D.\nD/\=strtrans(string(submatch(0, 1)))/', [strtrans("['D\<C-J>', 'D']")]],
|
||||
@@ -467,11 +467,11 @@ func Test_sub_replace_1()
|
||||
call assert_equal('iI', substitute('I', 'I', '\lII', ''))
|
||||
call assert_equal('jJ', substitute('J', 'J', '\LJ\EJ', ''))
|
||||
call assert_equal('Kk', substitute('K', 'K', '\Uk\ek', ''))
|
||||
call assert_equal("l\<C-V>\<C-M>l",
|
||||
\ substitute('lLl', 'L', "\<C-V>\<C-M>", ''))
|
||||
call assert_equal("m\<C-M>m", substitute('mMm', 'M', '\r', ''))
|
||||
call assert_equal("n\<C-V>\<C-M>n",
|
||||
\ substitute('nNn', 'N', "\\\<C-V>\<C-M>", ''))
|
||||
call assert_equal("l\<C-V>\rl",
|
||||
\ substitute('lLl', 'L', "\<C-V>\r", ''))
|
||||
call assert_equal("m\rm", substitute('mMm', 'M', '\r', ''))
|
||||
call assert_equal("n\<C-V>\rn",
|
||||
\ substitute('nNn', 'N', "\\\<C-V>\r", ''))
|
||||
call assert_equal("o\no", substitute('oOo', 'O', '\n', ''))
|
||||
call assert_equal("p\<C-H>p", substitute('pPp', 'P', '\b', ''))
|
||||
call assert_equal("q\tq", substitute('qQq', 'Q', '\t', ''))
|
||||
@@ -480,7 +480,7 @@ func Test_sub_replace_1()
|
||||
call assert_equal("u\nu", substitute('uUu', 'U', "\n", ''))
|
||||
call assert_equal("v\<C-H>v", substitute('vVv', 'V', "\b", ''))
|
||||
call assert_equal("w\\w", substitute('wWw', 'W', "\\", ''))
|
||||
call assert_equal("x\<C-M>x", substitute('xXx', 'X', "\r", ''))
|
||||
call assert_equal("x\rx", substitute('xXx', 'X', "\r", ''))
|
||||
call assert_equal("YyyY", substitute('Y', 'Y', '\L\uyYy\l\EY', ''))
|
||||
call assert_equal("zZZz", substitute('Z', 'Z', '\U\lZzZ\u\Ez', ''))
|
||||
endfunc
|
||||
@@ -500,17 +500,17 @@ func Test_sub_replace_2()
|
||||
call assert_equal('iI', substitute('I', 'I', '\lII', ''))
|
||||
call assert_equal('jJ', substitute('J', 'J', '\LJ\EJ', ''))
|
||||
call assert_equal('Kk', substitute('K', 'K', '\Uk\ek', ''))
|
||||
call assert_equal("l\<C-V>\<C-M>l",
|
||||
\ substitute('lLl', 'L', "\<C-V>\<C-M>", ''))
|
||||
call assert_equal("m\<C-M>m", substitute('mMm', 'M', '\r', ''))
|
||||
call assert_equal("n\<C-V>\<C-M>n",
|
||||
\ substitute('nNn', 'N', "\\\<C-V>\<C-M>", ''))
|
||||
call assert_equal("l\<C-V>\rl",
|
||||
\ substitute('lLl', 'L', "\<C-V>\r", ''))
|
||||
call assert_equal("m\rm", substitute('mMm', 'M', '\r', ''))
|
||||
call assert_equal("n\<C-V>\rn",
|
||||
\ substitute('nNn', 'N', "\\\<C-V>\r", ''))
|
||||
call assert_equal("o\no", substitute('oOo', 'O', '\n', ''))
|
||||
call assert_equal("p\<C-H>p", substitute('pPp', 'P', '\b', ''))
|
||||
call assert_equal("q\tq", substitute('qQq', 'Q', '\t', ''))
|
||||
call assert_equal('r\r', substitute('rRr', 'R', '\\', ''))
|
||||
call assert_equal('scs', substitute('sSs', 'S', '\c', ''))
|
||||
call assert_equal("t\<C-M>t", substitute('tTt', 'T', "\r", ''))
|
||||
call assert_equal("t\rt", substitute('tTt', 'T', "\r", ''))
|
||||
call assert_equal("u\nu", substitute('uUu', 'U', "\n", ''))
|
||||
call assert_equal("v\<C-H>v", substitute('vVv', 'V', "\b", ''))
|
||||
call assert_equal('w\w', substitute('wWw', 'W', "\\", ''))
|
||||
@@ -528,7 +528,7 @@ func Test_sub_replace_3()
|
||||
call assert_equal("e\\\\\re", substitute('eEe', 'E', "\\=\"\\\\\\\\\r\"", ''))
|
||||
call assert_equal('f\rf', substitute('fFf', 'F', '\="\\r"', ''))
|
||||
call assert_equal('j\nj', substitute('jJj', 'J', '\="\\n"', ''))
|
||||
call assert_equal("k\<C-M>k", substitute('kKk', 'K', '\="\r"', ''))
|
||||
call assert_equal("k\rk", substitute('kKk', 'K', '\="\r"', ''))
|
||||
call assert_equal("l\nl", substitute('lLl', 'L', '\="\n"', ''))
|
||||
endfunc
|
||||
|
||||
@@ -540,10 +540,10 @@ func Test_sub_replace_4()
|
||||
\ '\=substitute(submatch(0), ".", "\\", "")', ''))
|
||||
call assert_equal('b\b', substitute('bBb', 'B',
|
||||
\ '\=substitute(submatch(0), ".", "\\\\", "")', ''))
|
||||
call assert_equal("c\<C-V>\<C-M>c", substitute('cCc', 'C', '\=substitute(submatch(0), ".", "\<C-V>\<C-M>", "")', ''))
|
||||
call assert_equal("d\<C-V>\<C-M>d", substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\\<C-V>\<C-M>", "")', ''))
|
||||
call assert_equal("e\\\<C-V>\<C-M>e", substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\\<C-V>\<C-M>", "")', ''))
|
||||
call assert_equal("f\<C-M>f", substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''))
|
||||
call assert_equal("c\<C-V>\rc", substitute('cCc', 'C', '\=substitute(submatch(0), ".", "\<C-V>\r", "")', ''))
|
||||
call assert_equal("d\<C-V>\rd", substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\\<C-V>\r", "")', ''))
|
||||
call assert_equal("e\\\<C-V>\re", substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\\<C-V>\r", "")', ''))
|
||||
call assert_equal("f\rf", substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''))
|
||||
call assert_equal("j\nj", substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''))
|
||||
call assert_equal("k\rk", substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', ''))
|
||||
call assert_equal("l\nl", substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', ''))
|
||||
|
@@ -35,10 +35,7 @@ describe('eval', function()
|
||||
endfun
|
||||
]])
|
||||
end)
|
||||
before_each(function()
|
||||
clear()
|
||||
command('set noctrldisambig')
|
||||
end)
|
||||
before_each(clear)
|
||||
teardown(function()
|
||||
os.remove('test_eval_setup.vim')
|
||||
end)
|
||||
@@ -49,7 +46,7 @@ describe('eval', function()
|
||||
command('AR "')
|
||||
command([[let @" = "abc\n"]])
|
||||
source('AR "')
|
||||
command([[let @" = "abc\<C-m>"]])
|
||||
command([[let @" = "abc\r"]])
|
||||
command('AR "')
|
||||
command([[let @= = '"abc"']])
|
||||
command('AR =')
|
||||
|
@@ -3,6 +3,7 @@ local clear, feed_command = helpers.clear, helpers.feed_command
|
||||
local feed, next_msg, eq = helpers.feed, helpers.next_msg, helpers.eq
|
||||
local command = helpers.command
|
||||
local expect = helpers.expect
|
||||
local curbuf_contents = helpers.curbuf_contents
|
||||
local meths = helpers.meths
|
||||
local exec_lua = helpers.exec_lua
|
||||
local write_file = helpers.write_file
|
||||
@@ -159,6 +160,50 @@ describe('input split utf sequences', function()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('input pairs', function()
|
||||
describe('<tab> / <c-i>', function()
|
||||
it('ok', function()
|
||||
feed('i<tab><c-i><esc>')
|
||||
eq('\t\t', curbuf_contents())
|
||||
end)
|
||||
|
||||
it('can be mapped', function()
|
||||
command('inoremap <tab> TAB!')
|
||||
command('inoremap <c-i> CTRL-I!')
|
||||
feed('i<tab><c-i><esc>')
|
||||
eq('TAB!CTRL-I!', curbuf_contents())
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('<cr> / <c-m>', function()
|
||||
it('ok', function()
|
||||
feed('iunos<c-m>dos<cr>tres<esc>')
|
||||
eq('unos\ndos\ntres', curbuf_contents())
|
||||
end)
|
||||
|
||||
it('can be mapped', function()
|
||||
command('inoremap <c-m> SNIPPET!')
|
||||
command('inoremap <cr> , and then<cr>')
|
||||
feed('iunos<c-m>dos<cr>tres<esc>')
|
||||
eq('unosSNIPPET!dos, and then\ntres', curbuf_contents())
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('<esc> / <c-[>', function()
|
||||
it('ok', function()
|
||||
feed('2adouble<c-[>asingle<esc>')
|
||||
eq('doubledoublesingle', curbuf_contents())
|
||||
end)
|
||||
|
||||
it('can be mapped', function()
|
||||
command('inoremap <c-[> HALLOJ!')
|
||||
command('inoremap <esc> ,<esc>')
|
||||
feed('2adubbel<c-[>upp<esc>')
|
||||
eq('dubbelHALLOJ!upp,dubbelHALLOJ!upp,', curbuf_contents())
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('input non-printable chars', function()
|
||||
after_each(function()
|
||||
os.remove('Xtest-overwrite')
|
||||
|
Reference in New Issue
Block a user