Writing a tokenizer with escape sequences is not hard...
But writing one that's compatible with the current tokenizer, and all the stuff that depends on it, is.
Double quotes seem to work fine for CSV parsers, and I think they could be implemented without breaking any of the current stuff
bind b "bind c ""say """"hello world"""""""
-> bind c "say ""hello world"""
-> say "hello world"
bind b "bind c \"say \\"hello world\\"\""
-> bind c "say \"hello world\""
-> say "hello world"
Perhaps the escape characters are cleaner, but we'd probably have to set up a full escape code set, with \t, \n, etc. What if somebody puts \n in their name? That could cause issues.
Oh, I just remembered something that caused headaches with my previous experiences: variables.
set somevar hello
bind a "say $somevar"
set somevar goodbye
pressing "a" will say "goodbye" as expected. But what if you wanted it to say hello? Putting quotes around something will make it absolute.
Also, say you wanted to use a command that cared about parameters? If you wanted it all in the first parameter, you'd have to put quotes around it, but if you put quotes around it, it won't parse out the variable.
set somevar "string with spaces"
bind a "somecmd $somevar"
Now when you press "a", it will execute:
somecmd (1)string (2)with (3)spaces
When you really wanted
somecmd (1)"string with spaces"
But if you do:
somecmd "$somevar"
you get
somecmd (1)$somevar