[
{
"name": "word delete",
"text": "one two three",
"keys": "dw"
},
{
"name": "change insert dot",
"text": "one two three",
"keys": "cwhello<Esc>w."
},
{
"name": "counted dot override",
"text": "one two three four five six seven eight",
"keys": "2dw3."
},
{
"name": "around whitespace",
"text": "hello world",
"cursor": 5,
"keys": "daw"
},
{
"name": "inner whitespace",
"text": "hello world",
"cursor": 5,
"keys": "diw"
},
{
"name": "emoji interior find",
"text": "a👩💻z",
"keys": "f💻"
},
{
"name": "emoji replace",
"text": "a👩💻z",
"keys": "f👩rX"
},
{
"name": "emoji till",
"text": "a👩💻r",
"keys": "tr"
},
{
"name": "combining find delete",
"text": "aहिr",
"keys": "dfह"
},
{
"name": "default Y mapping",
"text": "one two",
"cursor": 4,
"keys": "Y"
},
{
"name": "operator count composition",
"text": "one two three four five six seven",
"keys": "2d3w"
},
{
"name": "line delete",
"text": "one\ntwo\nthree",
"keys": "dd"
},
{
"name": "end line delete",
"text": "one\ntwo\nthree",
"keys": "Gdd"
},
{
"name": "change line",
"text": "one\ntwo",
"keys": "ccHELLO<Esc>"
},
{
"name": "replace recovery",
"text": "abcdef",
"keys": "RXY<BS>Z<Esc>"
},
{
"name": "visual delete",
"text": "one two three",
"keys": "vllld"
},
{
"name": "visual line",
"text": "one\ntwo\nthree",
"keys": "Vjd"
},
{
"name": "nested object",
"text": "a(b(c)d)e",
"cursor": 4,
"keys": "d2i)"
},
{
"name": "quote escape",
"text": "a \"b\\\"c\" z",
"cursor": 5,
"keys": "di\""
},
{
"name": "macro record and play",
"text": "abc def ghi",
"keys": "qaix<Esc>lq@a"
},
{
"name": "missing nested register stops the outer macro",
"text": "hello",
"keys": "qa@zix<Esc>q@a"
},
{
"name": "counted nested macro repeats before the outer macro resumes",
"text": "hello",
"keys": "qbix<Esc>qqa2@bq2@a"
},
{
"name": "blocked upward motion stops remaining macro repetitions",
"text": "first\nsecond",
"keys": "Gqa0xk0q2@a"
},
{
"name": "counted downward motion that reaches another line continues the macro",
"text": "abc\ndef\nghi",
"keys": "qa9j0qggl@a"
},
{
"name": "last macro",
"text": "abc def ghi",
"keys": "qaxq@a@@"
},
{
"name": "counted macro",
"text": "abcdef",
"keys": "qaxq3@a"
},
{
"name": "join",
"text": "one\n two\nthree",
"keys": "J"
},
{
"name": "raw join",
"text": "one\n two",
"keys": "gJ"
},
{
"name": "pending operator",
"text": "one two",
"keys": "d"
},
{
"name": "incomplete Insert",
"text": "one two",
"keys": "iX"
},
{
"name": "incomplete Visual",
"text": "one two",
"keys": "vl"
},
{
"name": "operator Escape",
"text": "one two",
"keys": "d<Esc>"
},
{
"name": "counted insert",
"text": "abc",
"keys": "3ix<Esc>"
},
{
"name": "paste character",
"text": "abc def",
"keys": "yiwwp"
},
{
"name": "paragraph object",
"text": "one\ntwo\n\nthree",
"keys": "dap"
},
{
"name": "sentence object",
"text": "One. Two! Three?",
"keys": "das"
},
{
"name": "case operator",
"text": "One Two Three",
"keys": "gUiw"
},
{
"name": "motion h at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "h"
},
{
"name": "motion h at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "h"
},
{
"name": "motion h at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "h"
},
{
"name": "motion l at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "l"
},
{
"name": "motion l at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "l"
},
{
"name": "motion l at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "l"
},
{
"name": "motion j at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "j"
},
{
"name": "motion j at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "j"
},
{
"name": "motion j at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "j"
},
{
"name": "motion k at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "k"
},
{
"name": "motion k at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "k"
},
{
"name": "motion k at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "k"
},
{
"name": "motion w at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "w"
},
{
"name": "motion w at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "w"
},
{
"name": "motion w at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "w"
},
{
"name": "motion b at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "b"
},
{
"name": "motion b at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "b"
},
{
"name": "motion b at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "b"
},
{
"name": "motion e at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "e"
},
{
"name": "motion e at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "e"
},
{
"name": "motion e at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "e"
},
{
"name": "motion ge at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "ge"
},
{
"name": "motion ge at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "ge"
},
{
"name": "motion ge at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "ge"
},
{
"name": "motion W at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "W"
},
{
"name": "motion W at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "W"
},
{
"name": "motion W at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "W"
},
{
"name": "motion B at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "B"
},
{
"name": "motion B at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "B"
},
{
"name": "motion B at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "B"
},
{
"name": "motion E at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "E"
},
{
"name": "motion E at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "E"
},
{
"name": "motion E at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "E"
},
{
"name": "motion gE at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "gE"
},
{
"name": "motion gE at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "gE"
},
{
"name": "motion gE at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "gE"
},
{
"name": "motion $ at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "$"
},
{
"name": "motion $ at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "$"
},
{
"name": "motion $ at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "$"
},
{
"name": "motion 0 at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "0"
},
{
"name": "motion 0 at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "0"
},
{
"name": "motion 0 at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "0"
},
{
"name": "motion ^ at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "^"
},
{
"name": "motion ^ at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "^"
},
{
"name": "motion ^ at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "^"
},
{
"name": "motion gg at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "gg"
},
{
"name": "motion gg at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "gg"
},
{
"name": "motion gg at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "gg"
},
{
"name": "motion G at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "G"
},
{
"name": "motion G at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "G"
},
{
"name": "motion G at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "G"
},
{
"name": "motion 50% at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "50%"
},
{
"name": "motion 50% at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "50%"
},
{
"name": "motion 50% at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "50%"
},
{
"name": "motion { at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "{"
},
{
"name": "motion { at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "{"
},
{
"name": "motion { at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "{"
},
{
"name": "motion } at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "}"
},
{
"name": "motion } at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "}"
},
{
"name": "motion } at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "}"
},
{
"name": "motion ( at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "("
},
{
"name": "motion ( at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "("
},
{
"name": "motion ( at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "("
},
{
"name": "motion ) at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": ")"
},
{
"name": "motion ) at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": ")"
},
{
"name": "motion ) at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": ")"
},
{
"name": "motion 2w at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "2w"
},
{
"name": "motion 2w at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "2w"
},
{
"name": "motion 2w at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "2w"
},
{
"name": "motion 3e at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "3e"
},
{
"name": "motion 3e at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "3e"
},
{
"name": "motion 3e at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "3e"
},
{
"name": "motion 2b at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "2b"
},
{
"name": "motion 2b at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "2b"
},
{
"name": "motion 2b at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "2b"
},
{
"name": "motion 2ge at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "2ge"
},
{
"name": "motion 2ge at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "2ge"
},
{
"name": "motion 2ge at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "2ge"
},
{
"name": "motion 2j at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "2j"
},
{
"name": "motion 2j at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "2j"
},
{
"name": "motion 2j at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "2j"
},
{
"name": "motion 2$ at 2",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 2,
"keys": "2$"
},
{
"name": "motion 2$ at 6",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 6,
"keys": "2$"
},
{
"name": "motion 2$ at 10",
"text": " one two\nthree.\n\nfour five!\nsix",
"cursor": 10,
"keys": "2$"
},
{
"name": "operator d$",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d$"
},
{
"name": "operator d0",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d0"
},
{
"name": "operator d^",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d^"
},
{
"name": "operator dG",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "dG"
},
{
"name": "operator dgg",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "dgg"
},
{
"name": "operator d2j",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d2j"
},
{
"name": "operator d2k",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d2k"
},
{
"name": "operator d%",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d%"
},
{
"name": "operator d}",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d}"
},
{
"name": "operator d)",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d)"
},
{
"name": "operator dw",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "dw"
},
{
"name": "operator dW",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "dW"
},
{
"name": "operator db",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "db"
},
{
"name": "operator de",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "de"
},
{
"name": "operator dge",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "dge"
},
{
"name": "operator cwX<Esc>",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "cwX<Esc>"
},
{
"name": "operator c2wX<Esc>",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "c2wX<Esc>"
},
{
"name": "operator cWZ<Esc>",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "cWZ<Esc>"
},
{
"name": "operator diw",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "diw"
},
{
"name": "operator d2iw",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d2iw"
},
{
"name": "operator d3iw",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d3iw"
},
{
"name": "operator d2aw",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d2aw"
},
{
"name": "operator daw",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "daw"
},
{
"name": "operator d2aW",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "d2aW"
},
{
"name": "operator guu",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "guu"
},
{
"name": "operator gUU",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "gUU"
},
{
"name": "operator g~~",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "g~~"
},
{
"name": "operator x",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "x"
},
{
"name": "operator X",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "X"
},
{
"name": "operator 3x",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "3x"
},
{
"name": "operator 3rZ",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "3rZ"
},
{
"name": "operator sX<Esc>",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "sX<Esc>"
},
{
"name": "operator 2sX<Esc>",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "2sX<Esc>"
},
{
"name": "operator Sx<Esc>",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "Sx<Esc>"
},
{
"name": "operator D",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "D"
},
{
"name": "operator Cz<Esc>",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "Cz<Esc>"
},
{
"name": "operator ~",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "~"
},
{
"name": "operator 3~",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "3~"
},
{
"name": "operator p",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "p"
},
{
"name": "operator P",
"text": " one (two)\nthree four\nfive six",
"cursor": 7,
"keys": "P"
},
{
"name": "composition qaxqqAlq@a 0",
"text": "one two three",
"cursor": 0,
"keys": "qaxqqAlq@a"
},
{
"name": "composition 3iab<BS><Esc> 0",
"text": "one two three",
"cursor": 0,
"keys": "3iab<BS><Esc>"
},
{
"name": "composition RXY<BS>Z<Esc>w. 0",
"text": "abc def",
"cursor": 0,
"keys": "RXY<BS>Z<Esc>w."
},
{
"name": "composition vldw. 0",
"text": "abc def ghi",
"cursor": 0,
"keys": "vldw."
},
{
"name": "composition vlcX<Esc>w. 0",
"text": "abc def ghi",
"cursor": 0,
"keys": "vlcX<Esc>w."
},
{
"name": "composition Vd. 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "Vd."
},
{
"name": "composition <C-v>jlrX 0",
"text": "abcdef\nghijkl",
"cursor": 0,
"keys": "<C-v>jlrX"
},
{
"name": "composition <C-v>jlcX<Esc> 0",
"text": "abcdef\nghijkl",
"cursor": 0,
"keys": "<C-v>jlcX<Esc>"
},
{
"name": "composition <C-v>jlIX<Esc> 0",
"text": "abcdef\nghijkl",
"cursor": 0,
"keys": "<C-v>jlIX<Esc>"
},
{
"name": "composition <C-v>jlAX<Esc> 0",
"text": "abcdef\nghijkl",
"cursor": 0,
"keys": "<C-v>jlAX<Esc>"
},
{
"name": "composition yyp 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "yyp"
},
{
"name": "composition GyyP 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "GyyP"
},
{
"name": "composition ddp 0",
"text": "abc\ndef",
"cursor": 0,
"keys": "ddp"
},
{
"name": "composition oX<Esc> 0",
"text": "abc\ndef",
"cursor": 0,
"keys": "oX<Esc>"
},
{
"name": "composition OX<Esc> 0",
"text": "abc\ndef",
"cursor": 0,
"keys": "OX<Esc>"
},
{
"name": "composition 3oX<Esc> 0",
"text": "abc",
"cursor": 0,
"keys": "3oX<Esc>"
},
{
"name": "composition t:; 0",
"text": "a:b:c:d",
"cursor": 0,
"keys": "t:;"
},
{
"name": "composition T:; 6",
"text": "a:b:c:d",
"cursor": 6,
"keys": "T:;"
},
{
"name": "composition f:;, 0",
"text": "a:b:c:d",
"cursor": 0,
"keys": "f:;,"
},
{
"name": "composition dw 0",
"text": "one\ntwo\nthree",
"cursor": 0,
"keys": "dw"
},
{
"name": "composition 2dw 0",
"text": "one\ntwo\nthree",
"cursor": 0,
"keys": "2dw"
},
{
"name": "composition 2di) 4",
"text": "a(b(c)d)e",
"cursor": 4,
"keys": "2di)"
},
{
"name": "composition di\" 0",
"text": "abc \"def\" ghi",
"cursor": 0,
"keys": "di\""
},
{
"name": "composition xi<Esc>. 0",
"text": "abc",
"cursor": 0,
"keys": "xi<Esc>."
},
{
"name": "composition iX<Esc>u<C-r> 0",
"text": "abc",
"cursor": 0,
"keys": "iX<Esc>u<C-r>"
},
{
"name": "composition xU 0",
"text": "abc",
"cursor": 0,
"keys": "xU"
},
{
"name": "composition d 0",
"text": "abc\ndef",
"cursor": 0,
"keys": "d"
},
{
"name": "composition RZ 0",
"text": "abc",
"cursor": 0,
"keys": "RZ"
},
{
"name": "composition l 0",
"text": "a👩💻z",
"cursor": 0,
"keys": "l"
},
{
"name": "composition rX 1",
"text": "aहिz",
"cursor": 1,
"keys": "rX"
},
{
"name": "edge qavl<Esc>xq@a 0",
"text": "abc def",
"cursor": 0,
"keys": "qavl<Esc>xq@a"
},
{
"name": "edge qad<Esc>xq@a 0",
"text": "abc def",
"cursor": 0,
"keys": "qad<Esc>xq@a"
},
{
"name": "edge qaxqqAlq@a 0",
"text": "abcdefgh",
"cursor": 0,
"keys": "qaxqqAlq@a"
},
{
"name": "edge 2iX<Esc>3. 0",
"text": "abcdef",
"cursor": 0,
"keys": "2iX<Esc>3."
},
{
"name": "edge 2RX<Esc>3. 0",
"text": "abcdef",
"cursor": 0,
"keys": "2RX<Esc>3."
},
{
"name": "edge vlcXY<Esc>w. 0",
"text": "abc def ghi",
"cursor": 0,
"keys": "vlcXY<Esc>w."
},
{
"name": "edge vldw2. 0",
"text": "abc def ghi",
"cursor": 0,
"keys": "vldw2."
},
{
"name": "edge Vjd. 0",
"text": "abc\ndef\nghi\njkl",
"cursor": 0,
"keys": "Vjd."
},
{
"name": "edge VjcX<Esc>j. 0",
"text": "abc\ndef\nghi\njkl",
"cursor": 0,
"keys": "VjcX<Esc>j."
},
{
"name": "edge vlywp 0",
"text": "abc def",
"cursor": 0,
"keys": "vlywp"
},
{
"name": "edge vlp 0",
"text": "abc def",
"cursor": 0,
"keys": "vlp"
},
{
"name": "edge yiwWviwp 0",
"text": "abc def",
"cursor": 0,
"keys": "yiwWviwp"
},
{
"name": "edge j 2",
"text": "a\tb\n012345678901\nxxx",
"cursor": 2,
"keys": "j"
},
{
"name": "edge j 5",
"text": "ab界d\n0123456789",
"cursor": 5,
"keys": "j"
},
{
"name": "edge jj 4",
"text": "abcdef\nx\n12345678",
"cursor": 4,
"keys": "jj"
},
{
"name": "edge $j 0",
"text": "abc\ndefgh\nx",
"cursor": 0,
"keys": "$j"
},
{
"name": "edge G2dgg 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "G2dgg"
},
{
"name": "edge dj 0",
"text": "abc\ndef",
"cursor": 0,
"keys": "dj"
},
{
"name": "edge dk 4",
"text": "abc\ndef",
"cursor": 4,
"keys": "dk"
},
{
"name": "edge 3di) 3",
"text": "(a(b)c)",
"cursor": 3,
"keys": "3di)"
},
{
"name": "edge 2diw 0",
"text": "foo.bar baz",
"cursor": 0,
"keys": "2diw"
},
{
"name": "edge 2diw 0",
"text": "one \n two",
"cursor": 0,
"keys": "2diw"
},
{
"name": "edge dis 7",
"text": "one! Two.\n\nThree?",
"cursor": 7,
"keys": "dis"
},
{
"name": "edge 2dis 7",
"text": "one! Two.\n\nThree?",
"cursor": 7,
"keys": "2dis"
},
{
"name": "edge 2dap 0",
"text": "one\n\ntwo\n\nthree",
"cursor": 0,
"keys": "2dap"
},
{
"name": "edge 2dip 2",
"text": "one\n\ntwo\n\nthree",
"cursor": 2,
"keys": "2dip"
},
{
"name": "edge 3OX<Esc> 0",
"text": "abc",
"cursor": 0,
"keys": "3OX<Esc>"
},
{
"name": "edge Ré<Esc> 0",
"text": "abc def",
"cursor": 0,
"keys": "Ré<Esc>"
},
{
"name": "edge Ré<BS><Esc> 0",
"text": "abc def",
"cursor": 0,
"keys": "Ré<BS><Esc>"
},
{
"name": "edge 2w 0",
"text": "one👩💻two",
"cursor": 0,
"keys": "2w"
},
{
"name": "edge w 1",
"text": "a!👩💻z",
"cursor": 1,
"keys": "w"
},
{
"name": "edge dw 1",
"text": "a!👩💻z",
"cursor": 1,
"keys": "dw"
},
{
"name": "host-edge <C-v>jlyp 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "<C-v>jlyp"
},
{
"name": "host-edge <C-v>jlyP 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "<C-v>jlyP"
},
{
"name": "host-edge <C-v>jlyG$p 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "<C-v>jlyG$p"
},
{
"name": "host-edge <C-v>jldj. 0",
"text": "abc\ndef\nghi",
"cursor": 0,
"keys": "<C-v>jldj."
},
{
"name": "host-edge viw<Esc>gv 0",
"text": "abc def ghi",
"cursor": 0,
"keys": "viw<Esc>gv"
},
{
"name": "host-edge viwywgvy 0",
"text": "abc def ghi",
"cursor": 0,
"keys": "viwywgvy"
},
{
"name": "host-edge iab<Left>X<Esc>w. 0",
"text": "abc def",
"cursor": 0,
"keys": "iab<Left>X<Esc>w."
},
{
"name": "host-edge A<Left>X<Right>Y<Esc> 0",
"text": "abc",
"cursor": 0,
"keys": "A<Left>X<Right>Y<Esc>"
},
{
"name": "host-edge dis 0",
"text": "one.\n\nTwo.",
"cursor": 0,
"keys": "dis"
},
{
"name": "host-edge das 0",
"text": "one.\n\nTwo.",
"cursor": 0,
"keys": "das"
},
{
"name": "host-edge 2dis 0",
"text": "one.\n\nTwo.",
"cursor": 0,
"keys": "2dis"
},
{
"name": "host-edge 2das 0",
"text": "one.\n\nTwo.",
"cursor": 0,
"keys": "2das"
},
{
"name": "host-edge w 0",
"text": "你好世界 abc",
"cursor": 0,
"keys": "w"
},
{
"name": "host-edge w 0",
"text": "αβγδε abc",
"cursor": 0,
"keys": "w"
},
{
"name": "host-edge w 0",
"text": "👩💻🤖z",
"cursor": 0,
"keys": "w"
},
{
"name": "host-edge ra$l. 0",
"text": "abc",
"cursor": 0,
"keys": "ra$l."
},
{
"name": "host-edge ywyw 0",
"text": "one two",
"cursor": 0,
"keys": "ywyw"
},
{
"name": "host-edge xUu 0",
"text": "abc\ndef",
"cursor": 0,
"keys": "xUu"
},
{
"name": "host-edge qafZxq@a 0",
"text": "abc def",
"cursor": 0,
"keys": "qafZxq@a"
},
{
"name": "host-edge qadZxq@a 0",
"text": "abc",
"cursor": 0,
"keys": "qadZxq@a"
},
{
"name": "right stays on an empty logical line",
"text": "abc\n\ndef",
"cursor": 4,
"keys": "l"
},
{
"name": "count one scalar",
"text": "α β γ δ",
"keys": "c2wX<Esc>"
},
{
"name": "empty delete",
"text": "\n next line",
"keys": "dw"
},
{
"name": "empty change",
"text": "\n next line",
"keys": "cwX<Esc>"
},
{
"name": "blank last small",
"text": "alpha beta\n\nnext line",
"keys": "wd2w"
},
{
"name": "blank last big",
"text": "foo.bar\n\n baz qux",
"keys": "d2W"
},
{
"name": "blank last yank",
"text": "alpha beta\n\nnext line",
"keys": "wy2w"
},
{
"name": "blank last small indent",
"text": "foo.bar\n\n baz qux",
"keys": "d3w"
},
{
"name": "blank last big nonzero",
"text": "a foo.bar\n\n baz qux",
"keys": "wd2W"
},
{
"name": "blank last small zero",
"text": "foobar\n\n baz qux",
"keys": "d2w"
},
{
"name": "empty big",
"text": "\n next line",
"keys": "dW"
},
{
"name": "empty change eof",
"text": "",
"keys": "cwX<Esc>"
},
{
"name": "initial whitespace",
"text": " foo",
"keys": "cwX<Esc>"
},
{
"name": "single at end",
"text": "ab c ef",
"keys": "lc2wX<Esc>"
},
{
"name": "one empty line op",
"text": "\n",
"keys": "dw"
},
{
"name": "block delete repeat at another column",
"text": "abcdefg\nABCDEFG\n1234567\nzyxwvut",
"keys": "<C-v>jldjjll."
},
{
"name": "block delete repeat at earlier column",
"text": "abcdefg\nABCDEFG\n1234567\nzyxwvut",
"keys": "ll<C-v>jldjj0."
},
{
"name": "around quote absorbs preceding whitespace",
"text": "let s = \"hello\";",
"keys": "da\"",
"cursor": 10
},
{
"name": "angle bracket text object",
"text": "Option<alpha>",
"keys": "di>",
"cursor": 8
},
{
"text": "a\nb\nc\nd",
"keys": "<C-v>jIpqr<Esc>jj."
},
{
"text": "a\nb\nc\nd",
"keys": "<C-v>jApqr<Esc>"
},
{
"text": "ab\nc\ndef",
"keys": "l<C-v>jjIX<Esc>"
},
{
"text": "ab\nc\ndef",
"keys": "l<C-v>jjAX<Esc>"
},
{
"text": "abcd\nefgh",
"keys": "3rXj."
},
{
"text": "abc",
"cursor": 1,
"keys": "i<Esc>"
},
{
"text": "one\n two\n three\nfour",
"keys": "3J"
},
{
"text": "one\n two\n three\nfour",
"keys": "VjjJ"
},
{
"name": "Visual text put text",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "yljj0vlp"
},
{
"name": "Visual lines put text",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "yljj0Vp"
},
{
"name": "Visual block put text",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "yljj0<C-v>jlp"
},
{
"name": "Visual text put lines",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "yyjj0vlp"
},
{
"name": "Visual lines put lines",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "yyjj0Vp"
},
{
"name": "Visual block put lines",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "yyjj0<C-v>jlp"
},
{
"name": "Visual text put block",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "<C-v>jlyjj0vlp"
},
{
"name": "Visual lines put block",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "<C-v>jlyjj0Vp"
},
{
"name": "Visual block put block",
"text": "abc\ndef\nghi\njkl\nmno",
"keys": "<C-v>jlyjj0<C-v>jlp"
},
{
"name": "Visual P preserves source",
"text": "abc def",
"keys": "ylwvlP"
},
{
"name": "explicit one percent operator",
"text": "one\ntwo\nthree",
"keys": "G1d%"
},
{
"name": "characterwise multiline put cursor",
"text": "alpha beta\n\nnext line",
"keys": "wy2wp"
},
{
"name": "block source taller than selection",
"text": "abc def\nghi jkl\nmno pqr\nstu vwx\nyz",
"keys": "<C-v>jjlyj<C-v>lp"
},
{
"name": "block source shorter than selection",
"text": "abc def\nghi jkl\nmno pqr\nstu vwx\nyz",
"keys": "<C-v>lyjj<C-v>jlp"
},
{
"name": "visual paste dot",
"text": "abc def\nghi jkl\nmno pqr\nstu vwx\nyz",
"keys": "ylwvlpw."
},
{
"name": "visual line paste dot",
"text": "abc def\nghi jkl\nmno pqr\nstu vwx\nyz",
"keys": "yyjVpj."
},
{
"name": "visual block source after eof",
"text": "abc def\nghi jkl\nmno pqr\nstu vwx\nyz",
"keys": "<C-v>jjlyG<C-v>lp"
},
{
"name": "block line source before",
"text": "abc def\nghi jkl\nmno pqr\nstu vwx\nyz",
"keys": "yyjj<C-v>jlP"
},
{
"name": "delete from host EOL cursor",
"text": "hello\nworld",
"cursor": 5,
"keys": "D"
},
{
"name": "change from host EOL cursor",
"text": "hello\nworld",
"cursor": 5,
"keys": "C"
},
{
"name": "change upward from final empty line",
"text": "one\ntwo\n",
"cursor": 8,
"keys": "ck"
},
{
"name": "backward yank cursor",
"text": "abcrdef",
"cursor": 3,
"keys": "yFb"
},
{
"name": "change till adjacent previous character",
"text": "abc",
"cursor": 2,
"keys": "cTb"
},
{
"name": "replace with a line break",
"text": "abc",
"cursor": 1,
"keys": "r<CR>"
},
{
"name": "counted replace with a single line break",
"text": "abcd",
"keys": "3r<CR>"
},
{
"name": "empty line change to end",
"text": "\nnext",
"keys": "c$"
},
{
"name": "WORD object at host insertion point",
"text": "foo bar",
"cursor": 7,
"keys": "ciW"
},
{
"name": "visual character enter next line",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "v<CR>"
},
{
"name": "visual character enter count and anchor",
"text": "abc\n def\n\tghi\nlast",
"cursor": 1,
"keys": "v2<CR>o"
},
{
"name": "visual character enter count past EOF",
"text": "abc\n def\n\tghi\nlast",
"cursor": 1,
"keys": "v9<CR>"
},
{
"name": "visual character enter whitespace line",
"text": "abc\n \nlast",
"cursor": 1,
"keys": "v<CR>"
},
{
"name": "visual character enter empty line",
"text": "abc\n\nlast",
"cursor": 1,
"keys": "v<CR>"
},
{
"name": "visual character enter trailing empty line",
"text": "abc\n",
"cursor": 1,
"keys": "v<CR>"
},
{
"name": "visual character enter EOF no movement",
"text": "abc\n def",
"cursor": 7,
"keys": "v<CR>"
},
{
"name": "visual character enter reset preferred column",
"text": " alpha\n beta\n gamma",
"cursor": 5,
"keys": "v<CR>k"
},
{
"name": "visual character enter preserve column at EOF",
"text": "abcdefgh\nx",
"cursor": 7,
"keys": "vj<CR>k"
},
{
"name": "visual character enter yank selection",
"text": "abc\n def\nlast",
"cursor": 1,
"keys": "v<CR>y"
},
{
"name": "visual line enter next line",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "V<CR>"
},
{
"name": "visual line enter count and anchor",
"text": "abc\n def\n\tghi\nlast",
"cursor": 1,
"keys": "V2<CR>o"
},
{
"name": "visual line enter count past EOF",
"text": "abc\n def\n\tghi\nlast",
"cursor": 1,
"keys": "V9<CR>"
},
{
"name": "visual line enter whitespace line",
"text": "abc\n \nlast",
"cursor": 1,
"keys": "V<CR>"
},
{
"name": "visual line enter empty line",
"text": "abc\n\nlast",
"cursor": 1,
"keys": "V<CR>"
},
{
"name": "visual line enter trailing empty line",
"text": "abc\n",
"cursor": 1,
"keys": "V<CR>"
},
{
"name": "visual line enter EOF no movement",
"text": "abc\n def",
"cursor": 7,
"keys": "V<CR>"
},
{
"name": "visual line enter reset preferred column",
"text": " alpha\n beta\n gamma",
"cursor": 5,
"keys": "V<CR>k"
},
{
"name": "visual line enter preserve column at EOF",
"text": "abcdefgh\nx",
"cursor": 7,
"keys": "Vj<CR>k"
},
{
"name": "visual line enter yank selection",
"text": "abc\n def\nlast",
"cursor": 1,
"keys": "V<CR>y"
},
{
"name": "visual block enter next line",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "<C-v><CR>"
},
{
"name": "visual block enter count and anchor",
"text": "abc\n def\n\tghi\nlast",
"cursor": 1,
"keys": "<C-v>2<CR>o"
},
{
"name": "visual block enter count past EOF",
"text": "abc\n def\n\tghi\nlast",
"cursor": 1,
"keys": "<C-v>9<CR>"
},
{
"name": "visual block enter whitespace line",
"text": "abc\n \nlast",
"cursor": 1,
"keys": "<C-v><CR>"
},
{
"name": "visual block enter empty line",
"text": "abc\n\nlast",
"cursor": 1,
"keys": "<C-v><CR>"
},
{
"name": "visual block enter trailing empty line",
"text": "abc\n",
"cursor": 1,
"keys": "<C-v><CR>"
},
{
"name": "visual block enter EOF no movement",
"text": "abc\n def",
"cursor": 7,
"keys": "<C-v><CR>"
},
{
"name": "visual block enter reset preferred column",
"text": " alpha\n beta\n gamma",
"cursor": 5,
"keys": "<C-v><CR>k"
},
{
"name": "visual block enter preserve column at EOF",
"text": "abcdefgh\nx",
"cursor": 7,
"keys": "<C-v>j<CR>k"
},
{
"name": "visual block enter yank selection",
"text": "abc\n def\nlast",
"cursor": 1,
"keys": "<C-v><CR>y"
},
{
"name": "visual block O lower right",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "<C-v>jlO"
},
{
"name": "visual block O diagonal o",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "<C-v>jlo"
},
{
"name": "visual block O anchor corner",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "<C-v>jlOo"
},
{
"name": "visual block O twice",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "<C-v>jlOO"
},
{
"name": "visual block O ignored count",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "<C-v>jl2O"
},
{
"name": "visual block O lower left",
"text": "abcd\nefgh\nijkl",
"cursor": 1,
"keys": "<C-v>jhO"
},
{
"name": "visual block O upper right",
"text": "abcd\nefgh\nijkl",
"cursor": 5,
"keys": "<C-v>klO"
},
{
"name": "visual block O upper left",
"text": "abcd\nefgh\nijkl",
"cursor": 6,
"keys": "<C-v>khO"
},
{
"name": "visual block O delete rectangle",
"text": "abcd\nefgh\nijkl",
"cursor": 0,
"keys": "<C-v>jlOd"
},
{
"name": "visual block O tab corner",
"text": "abcdefghi\n\tx",
"cursor": 2,
"keys": "<C-v>jO"
},
{
"name": "visual block O tab anchor",
"text": "abcdefghi\n\tx",
"cursor": 2,
"keys": "<C-v>jOo"
},
{
"name": "visual block O tab repeat",
"text": "abcdefghi\n\tx",
"cursor": 2,
"keys": "<C-v>jOOo"
},
{
"name": "visual block O short row",
"text": "abcdef\nxy",
"cursor": 4,
"keys": "<C-v>jO"
},
{
"name": "visual block O preferred column",
"text": "abcdef\nxy\nmnopqr",
"cursor": 4,
"keys": "<C-v>j0Oj"
},
{
"name": "visual block O empty row",
"text": "abcdef\n\nmnopqr",
"cursor": 4,
"keys": "<C-v>jO"
},
{
"name": "visual block O wide corner",
"text": "abcdef\n界xyz",
"cursor": 1,
"keys": "<C-v>jO"
},
{
"name": "visual block O wide anchor",
"text": "abcdef\n界xyz",
"cursor": 1,
"keys": "<C-v>jOo"
},
{
"name": "visual block O combining corner",
"text": "éabc\nédef",
"cursor": 0,
"keys": "<C-v>jlO"
},
{
"name": "visual character O swaps endpoints",
"text": "abcd\nefgh",
"keys": "vjlO"
},
{
"name": "visual line O swaps endpoints",
"text": "abcd\nefgh",
"keys": "VjlO"
},
{
"name": "visual character trailing empty row",
"text": "abcd\nef\n",
"keys": "v$jj"
},
{
"name": "visual character count to trailing row",
"text": "abcd\nef\n",
"keys": "v$2j"
},
{
"name": "visual character return from trailing row",
"text": "abcd\nef\n",
"keys": "v<CR><CR>k"
},
{
"name": "visual line trailing empty row",
"text": "abcd\nef\n",
"keys": "V$jj"
},
{
"name": "visual line count to trailing row",
"text": "abcd\nef\n",
"keys": "V$2j"
},
{
"name": "visual line return from trailing row",
"text": "abcd\nef\n",
"keys": "V<CR><CR>k"
},
{
"name": "visual block trailing empty row",
"text": "abcd\nef\n",
"keys": "<C-v>$jj"
},
{
"name": "visual block count to trailing row",
"text": "abcd\nef\n",
"keys": "<C-v>$2j"
},
{
"name": "visual block return from trailing row",
"text": "abcd\nef\n",
"keys": "<C-v><CR><CR>k"
},
{
"name": "visual dot wide last",
"text": "a界b\n123456",
"keys": "vldj0."
},
{
"name": "visual dot wide destination",
"text": "ab\n界xyz",
"keys": "vldj0."
},
{
"name": "visual dot wide reversed",
"text": "a界b\n123456",
"keys": "lvhdj0."
},
{
"name": "visual dot combining source",
"text": "éab\n123456",
"keys": "vldj0."
},
{
"name": "visual dot combining destination",
"text": "ab\néxy",
"keys": "vldj0."
},
{
"name": "visual dot tab source",
"text": "a\tb\n1234567890",
"keys": "vldj0."
},
{
"name": "visual dot tab destination",
"text": "ab\n\tx",
"keys": "vldj0."
},
{
"name": "visual dot multiline wide end",
"text": "a\n界b\ncd\n123456",
"keys": "vjdj0."
},
{
"name": "rectangular cells 'q' ll<C-v>jjcQ<Esc>",
"text": "abcd\nq\nwxyz",
"keys": "ll<C-v>jjcQ<Esc>"
},
{
"name": "rectangular cells 'q' ll<C-v>jjly",
"text": "abcd\nq\nwxyz",
"keys": "ll<C-v>jjly"
},
{
"name": "rectangular cells '界xy' l<C-v>jjd",
"text": "abc\n界xy\nklm",
"keys": "l<C-v>jjd"
},
{
"name": "rectangular cells '界xy' l<C-v>jjcQ<Esc>",
"text": "abc\n界xy\nklm",
"keys": "l<C-v>jjcQ<Esc>"
},
{
"name": "rectangular cells '界xy' l<C-v>jjr界",
"text": "abc\n界xy\nklm",
"keys": "l<C-v>jjr界"
},
{
"name": "rectangular cells '界xy' l<C-v>jjI!<Esc>",
"text": "abc\n界xy\nklm",
"keys": "l<C-v>jjI!<Esc>"
},
{
"name": "rectangular cells '\\txy' <C-v>jjA!<Esc>",
"text": "abc\n\txy\nklm",
"keys": "<C-v>jjA!<Esc>"
},
{
"name": "rectangular cells '\\txy' l<C-v>jjI!<Esc>",
"text": "abc\n\txy\nklm",
"keys": "l<C-v>jjI!<Esc>"
},
{
"name": "rectangular cells '\\txy' l<C-v>jjd",
"text": "abc\n\txy\nklm",
"keys": "l<C-v>jjd"
},
{
"name": "rectangular cells '' l<C-v>jjA!<Esc>",
"text": "abc\n\nklm",
"keys": "l<C-v>jjA!<Esc>"
},
{
"name": "rectangular cells '' l<C-v>jjI!<Esc>",
"text": "abc\n\nklm",
"keys": "l<C-v>jjI!<Esc>"
},
{
"name": "rectangular cells '' l<C-v>jjy",
"text": "abc\n\nklm",
"keys": "l<C-v>jjy"
},
{
"name": "rectangular cells '1234' l<C-v>jjy",
"text": "a界b\n1234\nx界z",
"keys": "l<C-v>jjy"
},
{
"name": "rectangular cells 'éy' <C-v>jjrx",
"text": "éx\néy\naz",
"keys": "<C-v>jjrx"
},
{
"name": "block edge l<C-v>jhI!<Esc>",
"text": "界xy\nabc",
"keys": "l<C-v>jhI!<Esc>"
},
{
"name": "block edge l<C-v>jhd",
"text": "界xy\nabc",
"keys": "l<C-v>jhd"
},
{
"name": "block edge <C-v>jlA!<Esc>",
"text": "\txy\n12345678123",
"keys": "<C-v>jlA!<Esc>"
},
{
"name": "block edge lyl<C-v>jjP",
"text": "abc\n界xy\nklm",
"keys": "lyl<C-v>jjP"
},
{
"name": "block edge l<C-v>jjd.",
"text": "abc\n界xy\nklm",
"keys": "l<C-v>jjd."
},
{
"name": "counted macro undo",
"text": "TODO one\nTODO two\nTODO three\nTODO four\nTODO five\nTODO six",
"keys": "qa0cw- [ ]<Esc>j0q5@au",
"requires_history": true
},
{
"name": "counted macro redo",
"text": "TODO one\nTODO two\nTODO three\nTODO four\nTODO five\nTODO six",
"keys": "qa0cw- [ ]<Esc>j0q5@au<C-r>",
"requires_history": true,
"check": [
"text",
"mode",
"register",
"register_type"
]
},
{
"name": "macro recording remains a separate undo group",
"text": "TODO one\nTODO two\nTODO three\nTODO four\nTODO five\nTODO six",
"keys": "qa0cw- [ ]<Esc>j0q5@auu",
"requires_history": true
},
{
"name": "macro with atomic edits and final motion undo",
"text": "abcdef",
"keys": "qaxlq2@au",
"requires_history": true
},
{
"name": "nested macro undo",
"text": "abcdefghi",
"keys": "qaxq@@qb@axq@bu",
"requires_history": true
},
{
"name": "separate macro calls undo separately",
"text": "abcdefghi",
"keys": "qaxq@a@au",
"requires_history": true
},
{
"name": "macro normal cursor after deleting the final character",
"text": "abc",
"keys": "qa$xiX<Esc>qu$@a",
"requires_history": true
},
{
"name": "undo inside macro flushes earlier playback edits",
"text": "abcdefghi",
"keys": "qaxuxq@au",
"requires_history": true
},
{
"name": "counted macro changes across logical lines",
"text": "TODO one\nTODO two\nTODO three\nTODO four\nTODO five\nTODO six",
"keys": "qa0cw- [ ]<Esc>j0q5@a"
},
{
"name": "macro joined edits preserve the normal cursor",
"text": "abc",
"keys": "qa$xiX<Esc>q@a"
}
]