upvote
You missed an easier alternative that was in the article: ctrl-u saves and clears the current line, then you can input new commands, then use ctrl-y to yank the saved command.

With zsh, I prefer to use alt-q which does this automatically (store the current line, display a new prompt, then, after the new command is sent, restore the stored line). It can also stack the paused commands, e.g.:

$ cp foo/bar dest/ <alt-q>

$ wcurl -o foo/bar "$URL" <alt-q>

$ mkdir foo <enter> <enter> <enter>

reply
When you're killing (C-u, C-k, C-w, etc) + yanking (C-y), you can also use yank-pop (bound to M-y in bash and zsh by default) to replace the thing you just yanked with the thing you had killed before it.

  $ asdf<C-w>
  $                  # now kill ring is ["asdf"]
  $ qwerty<C-a><C-k>
  $                  # now kill ring is ["qwerty", "asdf"]
  $ <C-y>            # "yank", pastes the thing at the top of the kill ring
  $ qwerty<M-y>      # "yank-pop", replaces the thing just yanked with the next
                     # thing on the ring, and rotates the ring until the next yank
  $ asdf
reply
In zsh you can bind "push-line-or-edit". In bash and all readline programs, you can approximate it with C-u followed by C-y (i.e. cut and paste). My history is still full of '#' and ':' (csh trauma) prefixed command-lines like you described though ...
reply
Fwiw, in Bash, alt-shift-3 will prepend the current command with # and start a new command.
reply
More generally, it's alt-#. On an ISO (e.g. UK) keyboard layout, shift-3 isn't a hash.
reply