¿Cómo puedo mover X bytes hacia adelante, comenzando desde la ubicación actual del cursor (incluidos los saltos de línea)?
[count]gopodría usarse para avanzar X bytes desde el inicio del búfer. Lo intenté Shift + V, G, [count]go(suponiendo que [count]gocomenzaría a contar desde el comienzo de mi selección), pero desafortunadamente tampoco funcionó porque gosolo comienza a contar desde el comienzo del búfer.
También he tratado :set rulerformat=%ode mostrar el desplazamiento de bytes actual (como lo sugiere Saltar a un desplazamiento de bytes, y mostrar la posición como desplazamiento de bytes ), agregué los números en mi cabeza y finalmente emití [count]go. Esto funciona, pero no es muy práctico ...
cursor-movement
binary-file
Rob W
fuente
fuente

Xl(dondeXestá el número de caracteres) o el número de caracteres seguido de la flecha Derecha.Respuestas:
Esta búsqueda mueve 40 caracteres (no bytes), sin embargo:
buscando exactamente 40 caracteres (
\{40}) de cualquier tipo, incluida la nueva línea (\_.), y colocando el cursor al final de la búsqueda (/e). Ver: http://vimregex.com/#Non-Greedy ,:help search-offsety:help \_Además, vea
:h 23.4para la edición binaria.Actualización: según esta respuesta, aquí hay una función que salta al desplazamiento de bytes:
Se puede usar así:
o escribiendo la asignación de teclado asignada, con un recuento:
Si no usa un conteo, el número de conteo anterior se reutiliza. Entonces puedes hacer:
40CTRL-C CTRL-C CTRL-C 30CTRL-C CTRL-Csaltar 40, 40, 40, 30, 30 bytes, etc.Presiona
Ctrl-Opara saltar hacia atrás (ver comentarios dentro de la función).fuente
[count]goproceso aunque en una función vim (leer el desplazamiento de bytes actual, agregar el número deseado,goallí).[count]goy su método: 1)[count]goagrega un elemento a la lista de salto, por lo que puedo usarCtrl+Opara volver rápidamente a mi posición anterior. 2)[count]gose puede usar sin:, ¿es posible introducir una nueva[count]GOque haga lo suyo? ¿Podría editar su respuesta para que también coincida con ese comportamiento dego?Terminé usando la siguiente solución, que implementa la lógica de mi pregunta.
[count]GOpara mover[count]bytes hacia adelante.[count]Gopara mover[count]bytes hacia atrás.Agregue esto a su
.vimrc:Gracias a VanLaser por su implementación inicial, que me puso en la dirección correcta.
fuente