If you're a command line junkie like me, your commands sometimes tend to get long and complicated.
And then you spot a typo somewhere in the middle.
Or you forgot a command somewhere.
You now have two options: You can use the arrow keys (or, if you know your shell, the Emacs/Vi movements) to navigate there, and fix it.
Or you could just use your editor.
If you're using
zsh (as you should), you could add the following to your
# Enable Ctrl-x-e to edit command line autoload -U edit-command-line # Emacs style zle -N edit-command-line bindkey '^xe' edit-command-line bindkey '^x^e' edit-command-line # Vi style: # zle -N edit-command-line # bindkey -M vicmd v edit-command-line
Then, reload your
Now all you need to do is hit
Ctrl-x Ctrl-e (
Ctrl-x e also works) or, if you use vi style,
ESC v, and
zsh will launch
$EDITOR, allowing you to edit the current command to your hearts content, and once you save & close your editor's window, ZSH will execute your command.
Readline (which is what Bash uses) has a similar command called
edit-and-execute-command, and by default it's already bound to
Ctrl-x Ctrl-e, so no config necessary.
You can find this and other useful stuff in my dotfiles.
Update 2.5.2010: @citizen428 brought the builtin
fc (fix command) to my attention.
fc allows you to edit commands in your history, and reruns them when you're finished.