Inside vim, I often use conque plugin, so I can run a bash shell inside a vim buffer. I also may try out VimShell soon.
In conque, lets say I start typing some bash command, and before I enter it, I realize I have a typo. Since this is vim, naturally I want to go to normal mode, navigate to the typo, and modify it using some vim command. But when I try that it either says 'change mode disabled within shell' or it does look like it changed, but when I try to run the command, it runs it with the original typo in tact.
Is this possible to do in conque? If not, is there an alternative that allows this?
I understand that it would not make sense to change text from the shell that has already been entered as a command or that is output from some program, but I would still like to change a command that is partially typed out, before I enter it.
What about VimShell, does that allow this?
Further thoughts
After further thought, I take back something I said here. I think it does make sense to be able to edit the output of another program and edit commands I previously entered. Mind you I don't think editing them should do anything other than change what I see in front of me, but this is a Vim buffer, so I don't see any reason why I can't do that.
I also have some thoughts on how I would like commands I am currently typing out to be truly editable before entering them. The plugin should just do whatever it takes to make the command that is eventually entered match what I see on the screen after the prompt. After each edit of the not yet entered command, it could translate those into keystrokes that would result in the same output and current cursor position thus far. Such an approach should also preserve the ability to use tab completion, up and down arrows, and other things that the prompt interprets in a special way.
Is there anything out there that allows something like this?
$ ls
or$ grep
but fall apart in a multitude of ways once you start to use them as if you were in an actual terminal emulator. You should use a real terminal emulator instead.