Selecione o bloco de código no vim

12

Dado um código como este:

588          while ($linecounter > 0) {
589             $token = " ";
590             while ($token != PHP_EOL) {
591                 if (fseek($handle, $pos, SEEK_END) == -1) {
592                     $beginning = true;
593                     break;
594                 }
595                 $token = fgetc($handle);
596                 $pos--;
597             }
598             $linecounter--;
599             if ($beginning) {
600                 rewind($handle);
601             }
602         }

O cursor está no caractere = na linha 590.

Qual é a maneira mais eficiente de selecionar o bloco de código:

  1. linhas 590-597
  2. linhas 591-596 (apenas a parte interna)
por takeshin 06.08.2011 / 14:24

3 respostas

18

Para fazer o primeiro:

  • Pressione $ para ir até o final da linha de passagem, o {
  • Pressione v ou V (dependendo de você querer selecionar linhas ou não)
  • Pressione % (para ir para o colchete correspondente).

Para selecionar apenas a parte interna, vá para dentro da parte interna e use o modificador i{ direcional.

Por exemplo, para excluir tudo dentro do bloco {…} atual, digite: di{ .

    
por 06.08.2011 / 14:30
10
  1. $ para ir para o final da linha em que você está (para ultrapassar a chave de abertura)
    v para iniciar uma seleção ( V para linhas inteiras)
    % para pular para a chave combinada.

  2. j para descer uma linha para que o cursor fique dentro das chaves que você está tentando selecionar em v para iniciar uma seleção ( V para linhas inteiras)
    i{ selecione tudo dentro das chaves

por 06.08.2011 / 15:00
0

Para expandir apenas a resposta do Caleb, vi{ selecionará o "interior" do bloco de código. Para incluir o "fora" do bloco de código, ou seja, incluindo as chaves, use va{ .

Isso não incluirá a sub-rotina while . Para fazer isso, você pode usar o para mover o cursor para o início da seleção e, em seguida, 0 para mover a seleção para o início da linha.

    
por 07.06.2016 / 06:42