Vim entende o conceito de "parágrafo". A definição de parágrafo de Vim é um bloco de texto cercado por linhas em branco * . Existem vários movimentos e objetos de texto para trabalhar com isso.
[count]}- Avançar [count]parágrafos. Você pode usar <S-v>}para selecionar todas as linhas da linha atual até a próxima linha em branco. Isso incluirá a linha em branco, então você pode usar <S-v>}k.
[count]ip- Selecione [count]parágrafos. É como iw(palavra interior), exceto por, bem, parágrafos. O uso vipselecionará todo o parágrafo, e não da linha atual até o final do parágrafo.
[count]ap- como ip, exceto que isso incluirá as linhas em branco ao redor do parágrafo.
Uma ressalva aqui é que o Vim não considera uma linha com apenas espaço em branco como uma "linha em branco". Portanto, verifique isto (por exemplo, com :set list) se não parece funcionar.
Lembre-se também de que você sempre pode procurar o padrão desejado. Você pode obter uma linha vazia com /^$; ou se você não quiser selecionar a própria linha vazia, poderá usar \n\no cursor no final da linha antes da primeira linha em branco:
<S-v>/^$<CR>
<S-v>/\n\n<CR>
* Existem algumas exceções, veja :help paragrapha lógica completa. Mas, para a maioria das intenções e propósitos, essa definição funciona bem.
Shift + }? Um simples}faz o movimento. Veja outras respostas.