De todos modos para navegar porcentualmente en vim?

25

A menudo abro archivos grandes, buscando registros en los registros para encontrar información. Como todas las líneas tienen marca de tiempo en mi caso y estoy seguro de en qué parte del archivo completo está presente la información que me interesa. Por ejemplo,

  • en la mitad inferior del contenido del archivo (50% o más) o
  • aproximadamente un 10% más hacia el final del archivo o
  • desplácese hacia abajo más del 20% del archivo original.

Entonces, para navegar rápidamente de esta manera, es decir, en términos de porcentaje, ¿hay alguna funcionalidad existente ya disponible vim?

mtk
fuente
@stephane ¿Alguna forma de obtener más del 10% de la línea actual? No ve nada referenciado para navegar en esto en la ayuda:h N%
mtk
Acabo de probar un porcentaje relativo + 50%. No funciona, así que no. He actualizado mi respuesta para mostrar información de ayuda.
X Tian

Respuestas:

45

Perdón por una respuesta corta, pero

Sólo tipo 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
fuente
3
Esta respuesta es perfecta. Y podría ser aún más si pudieras hacer un movimiento relativo también: es decir, moverse, por ejemplo, un 10% hacia adelante, independientemente de mirar dónde estás. También tenga en cuenta que no debe ingresar: para acceder al modo de comando.
nilon
3

Existe el [count]%comando (¡qué intuitivo!) Para la navegación absoluta. Para la navegación relativa, debe calcular la cantidad usted mismo. Por ejemplo, para desplazarse hacia abajo 33%:

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

(Probablemente desee crear asignaciones que utilicen v:countpara estos).

Ingo Karkat
fuente