Enfim, para navegar em porcentagem no vim?

25

Costumo abrir arquivos grandes, procurando nos registros a busca de informações. Como todas as linhas têm registro de data e hora no meu caso, tenho certeza de em qual parte do arquivo está presente a informação na qual estou interessado. Por exemplo,

  • na metade inferior do conteúdo do arquivo (50% ou mais) ou
  • cerca de 10% a mais no final do arquivo ou
  • role para baixo mais 20% do arquivo original.

Portanto, para navegar rapidamente dessa maneira, ou seja, com porcentagem - existe alguma funcionalidade existente já disponível vim?

mtk
fonte
@stephane Alguma maneira de ir mais 10% da linha atual? Não vê nada referenciada para navegar neste na ajuda:h N%
mtk
Eu apenas tentei uma porcentagem relativa + 50% Não funciona, então não. Atualizei minha resposta para mostrar informações de ajuda.
X Tian

Respostas:

45

Desculpe por uma resposta curta, mas

apenas digite 50%

                                                        *N%*
{count}%                Go to {count} percentage in the file, on the first
                        non-blank in the line |linewise|.  To compute the new 
                        line number this formula is used:
                            ({count} * number-of-lines + 99) / 100
                        See also 'startofline' option.  {not in Vi}
X Tian
fonte
3
Esta resposta é perfeita. E pode tornar-se ainda mais se você puder fazer um movimento relativo: ou seja, avançar, por exemplo, 10% para a frente, independentemente de olhar para onde está. Observe também que você não: deve entrar para acessar o modo de comando.
Nilon 25/03
3

Existe o [count]%comando (quão intuitivo!) Para navegação absoluta. Para navegação relativa, você deve calcular o valor por conta própria. Por exemplo, para rolar para baixo 33%:

:exe 'normal!' 33 * line('$') / 100 . 'j'

(Você provavelmente deseja criar mapeamentos usados v:countpara isso.)

Ingo Karkat
fonte