windows - para - emacs tutorial
arreglar para obtener un desplazamiento suave en emacs? (7)
¡Yo tuve el mismo problema! Intenté todas las configuraciones de scroll- *, no me ayudó cuando mantuve presionada la flecha hacia abajo. Pero encontré esto en gnu.emacs.help que finalmente funcionó (al menos para mí):
(setq redisplay-dont-pause t)
Esto es lo que tengo en .emacs por ahora:
(setq redisplay-dont-pause t
scroll-margin 1
scroll-step 1
scroll-conservatively 10000
scroll-preserve-screen-position 1)
Me parece que quiero usar Emacs, sobre todo por el modo orgánico, pero me cuesta mucho acostumbrarme al comportamiento desigual de desplazamiento. Sé que este es un problema / excentricidad bien conocido de Emacs y que hay varias maneras de minimizar las sacudidas cuando se desplaza. Pero nada de lo que he intentado hasta ahora funciona muy bien.
Las principales sugerencias que he visto son (setq scroll-conservatively 10000) o utilizar la solución más completa disponible en smooth-scrolling.el. Creo que ambas cosas pueden funcionar bien para mí, pero ambas fallan miserablemente cuando mantengo presionadas las teclas de flecha hacia arriba y hacia abajo para que las repeticiones se desplacen hacia arriba o hacia abajo. Cuando hago esto, la pantalla se congela y veo que la barra de indicadores de desplazamiento en el margen de desplazamiento se mueve hacia arriba o hacia abajo. La pantalla no se actualiza hasta que dejo de mantener presionada la tecla de flecha hacia arriba o hacia abajo.
Si presiono repetidamente la flecha hacia arriba o hacia abajo, obtengo un comportamiento cercano al que deseo, es decir, la pantalla se desplaza suavemente y la tecla del cursor no se restablece al centro de la pantalla. Pero esto es indeseable porque (1) requiere repetidas pulsaciones de tecla y (2) Supongo que el desplazamiento es a un ritmo más lento de lo que debería ser capaz de obtener en una mejor solución.
El problema de mantener presionadas las teclas del cursor me parece ser que la velocidad de repetición de la flecha hacia arriba o hacia abajo es tan rápida que activa emacs para detener la actualización de la pantalla hasta que se suelta la tecla. Me pregunto si una posible solución para mí sería agregar algo de retraso en la tasa de repetición de tecla o la velocidad a la que se llama a la función de línea siguiente / anterior en emacs.
No he visto esto como un problema para los demás y me pregunto si otras personas han experimentado el mismo comportamiento. ¿Cuál es la mejor manera de arreglar las cosas para poder mantener presionadas las teclas de flecha arriba / abajo y tener una velocidad de repetición lo suficientemente lenta para que la pantalla no se congele?
ACTUALIZACIÓN: El comportamiento anterior es lo que obtengo cuando ejecuto emacs en Win7 / 64. En la misma máquina cuando ejecuto emacs dentro de una VirtualBox VM que ejecuta Ubuntu 10.04, no hay problema para obtener el desplazamiento que funciona bien incluso cuando las teclas del cursor se mantienen presionadas.
Este comportamiento no se encuentra en todas las plataformas. Para aquellas plataformas que presentan problemas, recomendaría usar esta configuración:
(setq scroll-conservatively 0)
Coloca el cursor en el medio de la pantalla cada vez que se desplaza a otra página.
Estoy muy contento con el adamspiers.org/computing/elisp/smooth-scrolling.el Adam Spires, como sugirió el rddillon. Pensé que merece una respuesta propia.
Prueba esto:
;; scroll one line at a time (less "jumpy" than defaults)
(setq mouse-wheel-scroll-amount ''(1 ((shift) . 1))) ; one line at a time
(setq mouse-wheel-progressive-speed nil) ; don''t accelerate scrolling
(setq-default smooth-scroll-margin 0)
(setq scroll-step 1
scroll-margin 1
scroll-conservatively 100000)
Y usa pager.el.
;; Pager
(require ''pager-default-keybindings)
Eso es lo que quiero :) ¡Disfrútalo!
Puedo desplazarme por una sola línea con M-Up / M-Down agregando esto a mis .emacs:
(global-set-key (kbd "M-<down>") (lambda () (interactive) (scroll-up 1)))
(global-set-key (kbd "M-<up>") (lambda () (interactive) (scroll-down 1)))
Tenga en cuenta que esto no se menciona en ningún lugar aquí, pero encontré archivos más grandes que terminaron encontrándose con un lag irritante, donde el desplazamiento se pondría detrás de la actualización de la fuente.
Esto se basa en que el rediseño no es tan lento como para que el sistema se demore demasiado en su actualización.
Vea esta pregunta para más detalles.
Esta configuración funcionó bien para mí:
(setq
scroll-conservatively 1000 ;; only ''jump'' when moving this far
scroll-margin 4 ;; scroll N lines to screen edge
scroll-step 1 ;; keyboard scroll one line at a time
mouse-wheel-scroll-amount ''(6 ((shift) . 1)) ;; mouse scroll N lines
mouse-wheel-progressive-speed nil ;; don''t accelerate scrolling
redisplay-dont-pause t ;; don''t pause display on input
;; Always redraw immediately when scrolling,
;; more responsive and doesn''t hang!
fast-but-imprecise-scrolling nil
jit-lock-defer-time 0
)
scroll-conservatively
ayuda, pero también me gusta un margen para que pueda ver lo que está surgiendo como un scroll - guarda el contexto en la pantalla para mí. Esta configuración me ha funcionado bien y una gran variedad de computadoras durante algunos años:
(setq scroll-conservatively 10)
(setq scroll-margin 7)