Improving exec function and adding vim.

Should really use some kind of event instead of passing rl in for pausing/resuming