I can answer for Vim, but not Emacs.
Start and end selection in positions outside the text:
:set virtualedit=block
will enable the behavior you want. You can drop the initial colon and add it to your .vimrc if you like. For more info, :help 'virtualedit'
from within Vim.
Paste block inline:
If you just hit p in Command mode, Vim will insert the block, pushing characters to the right on each line. If you select another block and hit p, Vim will replace that block with the pasted block.
You can paste a block "linewise" with the command-mode key sequence OEscVp. This inserts a line above the current line (O Esc
), selects it linewise (V
), then pastes over it (p
). You could shorten this to (for example) yp with a mapping such as :nmap yp O<Esc>Vp
-- type that literally; use five keystrokes for <Esc>
rather than pressing the Escape key.