O que o movimento sublinhado faz no vim?


10

Não entendo o movimento sublinhado no vim, pelo menos no contexto de yank (y). Minha cábula lê

"soft" bol down

que eu não compreendo. Se eu usar o movimento sozinho, parece ser o mesmo, o ^que significa ir para o primeiro espaço não em branco da linha. No entanto, se eu usar o movimento y, ele puxa a linha inteira (como yy ou Y), mas y^não puxa a linha inteira, mas apenas para o primeiro caractere que não seja um espaço em branco, exclusivo, como seria de esperar.

Então, o que exatamente o sublinhado deve fazer?

Respostas:


13

Sem contagem, ^e _são de fato equivalentes, mas o último suporta uma contagem:

  _  <underscore>         [count] - 1 lines downward, on the first non-blank
                          character |linewise|.

O linewiseexplica sua segunda observação: quando usado como um movimento, não apenas cobre o texto entre a posição anterior e o novo, mas todo o conjunto de linhas cobertas.

A leitura cuidadosa do :helpfornece essas idéias. Você também verá (por proximidade) que o _comando está intimamente relacionado a +e -.


Hmmm, ok, então qual é a diferença entre y2_ e y2 +?
Tyler Durden

2
@TylerDurden A diferença é 1 (linha), assim como a diferença entre [count] - 1e [count]para qualquer valor de [count]. Como Ingo mencionou, seria bom ler a ajuda interna do vim, o que é bastante claro.
Jw013

3
Por que o _comando existe - por que alguém prefere +?
Aaron Thoma

Para não discutir, mas a ajuda é um pouco confusa. [count] - 1 lines downward- para mim, dizia "contagem: 1 linhas para baixo" em vez da interpretação correta. Eu sei, nem faz muito sentido, mas há um pequeno espaço para confusão lá.
André Chalella 11/07/19
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.