I have a data that looks like
:stuff #object[java.time.Instant 0x4ddb2473 "2016-03-04T00:00:00Z"], :stuff2 #object[java.time.Instant 0x62bc763e "2046-04-01T00:00:00Z"],
I want to change it to
:stuff (jt/instant "2016-03-04T00:00:00Z"), :stuff2 (jt/instant "2046-04-01T00:00:00Z"),
I start the macro by pressing
qt. I type a series of commands that correctly does this change. I save the macro with
q. Then I press
@t and it breaks.
This is the data after I call
:stuff let b:sexp_count = v:count | execute "normal! vvm`" | call sexp#move_to_nearest_bracket('o', 0) | if v:operator ==? "c" | call <SNR>32_repeat_set(v:operator . "\<Plug>(sexp_move_to_prev_bracket)\<C-r>.\<C-Bslash>\<C-n>", b:sexp_count) | else | call <SNR>32_repeat_set(v:operator . "\<Plug>(sexp_move_to_prev_bracket)", b:sexp_count) | endif jt/instant], :stuff2 (jt/instant "2046-04-01T00:00:00Z"),
Note that this is three lines.
jt/instant], is moved to its own line.
This is what's stored in the
Sexp related plugins:
/#<enter> ct" (jt/instant<esc> f"df" F)i<space><esc>p f]x F<space>x q
The whitespace are not key presses. I added them in to make it easier to understand by grouping logical chunks together. Ex:
/#<enter> finds the line I want to change.