escrever liners sql / one no vim

às vezes, eu me pego usando o vim para escrever longos shell / ruby ​​one liners ou consultas sql em várias linhas.

isso é útil para aqueles momentos. ele copia a seleção visual para a área de transferência como uma linha única unida (sem modificar a seleção visual no local).

vnoremap <silent> <Leader>y "+y:let @+ = join(map(split(@+, 'n'), 'substitute(v:val, "^\s\+", "", "")'), " ")<CR>

acontece isso:

select
username
,
machine
,
count
(*)
from
v$session

where
machine
!= 'db1'
group by
machine
,
username

order
by
machine

nisso:

select username,  machine,  count(*) from  v$session where  machine != 'db1' group by  machine, username order by machine