A maneira mais básica seria:
-
corte o bloco que você deseja mover diretamente (
di{, por exemplo) ou após uma seleção visual (vipd, por exemplo). -
mova para onde você quer que o bloco seja e cole.
E eu não vejo nada "desajeitado" sobre isso.
Como você faz isso agora e por que é desajeitado?
Enfim, contemple a beleza dos comandos Ex:
:'<,'>m33 <-- move the currently selected text to after line 33
:50,62m19 <-- move lines 50 to 62 to after line 19
:-23,+15m13 <-- move 13th line above to 15th line below to after line 13
:'{,'}m'a <-- move the current paragraph to after mark a
:?^foo?,'bm. <-- move 1st line matching ^foo upward to mark b to after the current line
Oh deus… Veja :exusage , :help :move e :help range .
Note que o Vim tem maneiras de ajudar você a navegar:
- marca,
mapara colocar a marcaa,'apara saltar para a marcaa, consulte:help mark-motions - o jumplist,
<C-o>para voltar,<C-i>para avançar, ver:help jumplist