Cómo deshabilitar el desplazamiento horizontal
He escrito una solución que deshabilita el desplazamiento horizontal, ( alejándose de la sugerencia de @ ЯрославРахматуллин ), pero no creo que le guste:
augroup NoScrollPlease
autocmd!
autocmd CursorMoved * norm!99zH
augroup END
Esto evita el desplazamiento hacia la derecha mediante el método increíblemente preciso de desplazarse nuevamente hacia atrás. *
* Debido a que no sé qué tan lejos te has desplazado hacia la derecha o qué tan largas son tus líneas, estoy desplazando la cantidad arbitrariamente "lejana" de 99 anchos de media pantalla. Tenga en cuenta también que no me estoy molestando en verificar si realmente se ha desplazado hacia la derecha o no antes de desplazarse "hacia atrás" hacia la izquierda. Si realmente tiene la intención de utilizar esta solución, es posible que desee hacer algo al comparar los valores degetcurpos()
, 'sidescroll'
y 'columns'
.
¿Por qué no vas a querer hacerlo?
La razón por la que no va a usar esto es porque el problema de desplazamiento subyacente es otro problema: Vim no le permitirá mover el cursor "fuera de la pantalla". Por lo tanto, si se desplaza hacia la izquierda de manera tal que el cursor no esté en la pantalla después del desplazamiento, Vim lo ayuda con el cursor y lo mueve hacia la izquierda.
Pero debido a que el cálculo que está usando para saber si el cursor está en la pantalla es el mismo que está usando para decidir si desplazarse en el problema original, el efecto neto es que con esta "solución" en su lugar, si intenta mover el cursor a la derecha en una situación que normalmente provocaría un desplazamiento lateral, ahora el cursor se niega a moverse en absoluto. **
** Para ser un poco más preciso, dependiendo de la posición actual y el movimiento, el cursor puede moverse hacia la derecha; simplemente no se moverá más allá de la posición donde normalmente se produciría un desplazamiento.
¿Otras opciones?
Así que me temo que su solución planificada no va a funcionar. Si quieres un viable solución al problema general, será necesario implementarlo en el código fuente de Vim.
Como ya ha notado , es poco probable que esto llegue pronto, así que me temo que su mejor opción para solucionar el caso específico del problema que se muestra en su gif es solicitar al autor del complemento que deje de usarconceal
completo y en su lugar eliminar el texto oculto del búfer por completo.
Según el resultado oculto y la mención vim-plugin-AnsiEsc
en la documentación, esto podría ser algo que puedan implementar, pero es difícil decirlo con certeza sin saber cómo funciona el complemento.
:set wrap