Cuando se ejecuta previous-line
, C-p
o <up>
el cursor salta una línea sin problemas ni retrasos. Cuando se ejecuta next-line
, C-n
o <down>
el cursor salta correctamente una línea, pero con un retraso significativo. Cuando presiono la tecla hacia abajo, ni siquiera puedo ver el punto en movimiento, solo aparece en algún lugar debajo. Ejecuté el generador de perfiles de Emacs y parece que el culpable es cl-position
. Resulta que es que previous-line
literalmente solo mueve el cursor, mientras next-line
ejecuta muchas funciones.
¿Cuál es el problema y cómo se puede solucionar?
visual-line-mode
? ¿Tienes algunas líneas muy largas?visual-line-mode
y no tengo largas colas.Respuestas:
He encontrado una respuesta a mi pregunta al reducir la parte traviesa y buscar en Google. ¡He logrado reducir el retraso 10 VECES! Quiero decir ... ¿Es una locura la cantidad de potencia informática que
next-line
se usaba para mover el cursor hacia abajo?La solución:
Pon este código en tu init.el:
(setq auto-window-vscroll nil)
La prueba:
Ahora
next-line
no se dispara,line-move-partial
por lo tanto, reduce el retraso. No recuerdo la creación deauto-window-vscroll
at
. No estaba en ninguna parte de ninguno de mis.el
archivos, no estoy seguro de cómo se configurót
para empezar. Entonces, si alguien tiene problemas de rendimiento con el movimiento del cursor, ¡entonces la solución anterior reducirá el retraso de aproximadamente 50% -80% de tiempo de CPU a 5% de tiempo de CPU!Para comprobar rápidamente si está afectado, simplemente ejecute
C-h v auto-window-vscroll
. Si está configurado,t
es posible que tenga problemas de rendimiento importantes. Verifique con el generador de perfiles de Emacs si el movimiento del cursor realmente causa un retraso.¡Mucha suerte, compañeros amantes de Emacs!
Fuente de arreglo
fuente
M-x report-emacs-bug
.No estoy completamente seguro de cuál es el problema, pero su informe de perfil parece indicar que posn-at-point realiza una nueva visualización de lo esperado, lo que a su vez provoca la recalculación de la línea de modo, y esa línea eléctrica debería hacer más esfuerzos para memorizar su cálculo para la línea de modelo.
IOW, te sugiero
M-x report-emacs-bug
y también puedes informar un error a los encargados del mantenimiento de la línea eléctrica.fuente
Parece que estás usando powerline. En particular, está mostrando el nombre del proyecto del proyectil en su línea de modelo. Recientemente ha habido algunas mejoras en el paquete de proyectiles que han mitigado algo de eso. Asegúrate de estar al día.
https://github.com/bbatsov/projectile/issues/1212
https://github.com/bbatsov/projectile/pull/1213
También es posible memorizar funciones que llama la línea de modo. He hecho esto mucho en mi línea de modelo para hacerlo muy rápido.
fuente
Me di cuenta de que mi
doom-modeline
también está contribuyendo al retraso. De hecho, se dice en el documento dedoom-modeline
:Después de configurar
(setq doom-modeline-enable-word-count nil)
, obtuve una notable aceleración en los movimientos del cursor.fuente