Selecionar bloco de código no vim


13

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)

Respostas:


20

Para fazer o primeiro:

  • Pressione $para ir até o final da linha a{
  • Pressione vou V(dependendo se você deseja selecionar linhas ou não)
  • Pressione %(para pular para o suporte correspondente).

Para selecionar apenas a parte interna, entre na parte interna e use o i{modificador direcional.

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


1
Uau, eu só aprendi a usar yi(, graças :)
takeshin

10
  1. $para pular para o final da linha em que você está (para ultrapassar a chave de abertura)
    vpara iniciar uma seleção ( Vpara linhas inteiras)
    %para pular para a chave correspondente.

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


O método 2 é provavelmente o melhor método aqui, já que o movimento $ no método 1 funciona apenas porque a chave de abertura está no final da linha. O método 2 funciona sem o movimento j se o cursor estiver em qualquer lugar dentro do aparelho.
SpoonMeiser

3

Para expandir um pouco a resposta de Caleb, vi{selecione o "interior" do bloco de código. Para incluir o "fora" do bloco de código, ou seja, incluindo os chavetas, use va{.

Isso não inclui a whileestrofe, no entanto. Para fazer isso, você pode omover o cursor para o início da seleção e, em seguida, 0mover a seleção para o início da linha.

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.