¿Cómo puedo mover X bytes hacia adelante, comenzando desde la ubicación actual del cursor (incluidos los saltos de línea)?
[count]go
podría usarse para avanzar X bytes desde el inicio del búfer. Lo intenté Shift + V, G, [count]go
(suponiendo que [count]go
comenzaría a contar desde el comienzo de mi selección), pero desafortunadamente tampoco funcionó porque go
solo comienza a contar desde el comienzo del búfer.
También he tratado :set rulerformat=%o
de 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
(dondeX
está 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-offset
y:help \_
Además, vea
:h 23.4
para 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-C
saltar 40, 40, 40, 30, 30 bytes, etc.Presiona
Ctrl-O
para saltar hacia atrás (ver comentarios dentro de la función).fuente
[count]go
proceso aunque en una función vim (leer el desplazamiento de bytes actual, agregar el número deseado,go
allí).[count]go
y su método: 1)[count]go
agrega un elemento a la lista de salto, por lo que puedo usarCtrl+O
para volver rápidamente a mi posición anterior. 2)[count]go
se puede usar sin:
, ¿es posible introducir una nueva[count]GO
que 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]GO
para mover[count]
bytes hacia adelante.[count]Go
para 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