No modo normal, J
(diferentemente de j
, que move o cursor uma linha para baixo) é usado para unir uma linha com a linha logo abaixo dela. No entanto, por padrão, ele adiciona um espaço ao final da primeira linha; para obter o resultado desejado (unindo as linhas sem inserir um espaço adicional), seria necessário usar gJ
.
Para usar comandos de modo normal no modo ex (que você insere pressionando :
enquanto estiver no modo normal), deve-se usar o comando normal
. Veja :h normal
dentro do vim. Então, para trabalhar com a próxima linha que combina com o padrão, deve-se usar (note que por padrão, você tem que escapar do +
para fazê-lo funcionar com o regex do vim, uma conseqüência de manter compatibilidade com o antigo regex do vi original motor):
:/^a.\+g$/normal gJ
Para trabalhar em todas as linhas que correspondam ao padrão, seria necessário usar o comando :global
(consulte :h :g
no vim) da seguinte forma:
:global/^a.\+g$/normal gJ
Ou mais concisamente:
:g/^a.\+g$/norm gJ
Também é possível usar o comando ex join
(consulte :h :join
) para obter a mesma coisa com um pouco menos de digitação (o !
no final, nesse caso, informa join
para não inserir um espaço no final da primeira linha).
:g/^a.\+g$/join!