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,
ma
para colocar a marcaa
,'a
para saltar para a marcaa
, consulte:help mark-motions
- o jumplist,
<C-o>
para voltar,<C-i>
para avançar, ver:help jumplist