vim, 9 8 77 6 characters
<C-a><C-v><esc>1@div><esc>1@ad We can build and execute an arbitrary vimscript program as follows:
Use the sequence
ii<Caa<C-v><C-v>11<esc>11<C-a>11<C-a>11<C-a>11<C-a>11<C-a>11<C-a>11<C-a><C-a><C-a><C-a><C-a><C-a><C-a><C-a><C-a><C-a>11<C-a>dd@1<esc>ddddv>1<esc>dd@1<esc>ddddto obtain anal<C-a>in register1.Enter insert mode with
ia, then insert ania, which will be used to re-enter insert mode in a macro later.Use
<C-v><C-v>1as many times as necessary to insert the literal sequence<C-v>1—each of these will correspond to oneFor each character in the finaldesired vimscript program.Exit insert mode (
<esc>), then move back to the beginning of the line withi<esc>i<esc>i<esc>....Use
<C-a>as many times as necessary to increment the first1until the ASCII value of the first desired character is reached.use
<C-v><C-v>1<esc>to insert the literal sequence<C-v>1,use
@1(which is<C-a><cr>, in which the final<cr>is a no-op due to being on the last line) as many times as necessary to increment the1until the ASCII value of the desired character is reached,and re-enter insert mode with
a.
Move pastDelete the first number with
@1(which executes anland then<cr>, which is a no-op when there is only one line) and continue at step 4 until all desired numbers have been obtained.Use
ddto delete the inserted text (includingalong with a trailing newline) into the"1andregister with1<esc>ddregisters.UseExecute the result as vim keystrokes by using
@1to execute the text as a macro. At this point, the desired vimscript program has been inserted into the file.Exit insert mode, then
dd<esc>ddto delete the empty line inserted because ofentered by the trailing newline that came from the previous step 6.ddagain to delete the vimscript program into Run the1register.Finally, useresulting arbitrary sequence of bytes with
@1dd@1to execute the program. (If the first character isIf it begins with a:, the resultit will be executedinterpreted as vimscript code, and it will be run due to the trailing newline fromdd.)
I'm not convinced this is a minimal character set, but it's quite easy to prove to be Turing-complete.