Seleção visual do cursor para a próxima linha vazia?

11

Como se seleciona da linha atual para a próxima linha vazia?

Estou ciente do SHIFT+, Vmas preciso pular para a próxima linha vazia ou pressionar a tecla para baixo várias vezes. Eu sei como fazer isso bem quando há um caractere correspondente como um, }mas não tenho idéia de como fazer isso para uma linha vazia.

leeand00
fonte

Respostas:

19

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.

Martin Tournoij
fonte
12

Um atalho para a próxima linha vazia é }. Então você pode querer usar SHIFT+v}

marderh
fonte
1

Basta pressionar Shift + }para a próxima linha vazia sem nenhuma seleção de texto.

Com Sift + v + }, o vim seleciona o texto da posição atual do cursor para a próxima linha vazia e é necessário pressionar ESCpara sair do modo de seleção

Junaid
fonte
Por que Shift + }? Um simples }faz o movimento. Veja outras respostas.
Ralf
@Ralf Sift + }para invocar / entrar no colchete }a menos que seu teclado suporta diretamente inserindo }sem pressionarShift
Junaid