The only problem with the suggestions above, and they are useful, is that the config files you refer to are by no means exhaustive lists. Nor do they give any explanation of the command's purpose or parameters (aside from that immediately determined from their context). I'd already looked through these but it's no hope when you're trying to figure out "how can I possibly do X" where X is something that doesn't immediately appear to be supported. There may be commands somewhere which will get you close, but it's not immediately obvious.
For example, I can't find a clear_selection call. I assume there must be one because any of the navigation commands will cause it to be cleared if shift isn't held down. I assume they don't all contain the same cut-n-paste code for clearing a selection and there's some common code within the sources somewhere. I admit in the current implementation, this example doesn't make a great deal of sense but it does illustrate the problem of there being no complete list (or no published programmatic method for deriving one for any given version of ST).