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.

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.


12

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


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.