¿Cómo puedo hacer que el desplazamiento del ratón Emacs sea más lento y suave?


Cuando me desplazo en Emacs usando la rueda del ratón, se desplaza 5 líneas a la vez, lo que, creo, es demasiado - ¿dónde establezco un nuevo valor?

Además, cuando me desplazo en Emacs con un ratón (ya sea rueda o barra de desplazamiento), el cursor salta para permanecer dentro del área visible de la pantalla - ¿hay alguna manera de anular ese comportamiento, haciendo que permanezca en la línea en la que estaba, incluso cuando sale de la pantalla? En otras palabras, no quiero que la posición donde aparecen los símbolos recién escritos cambie por el desplazar.

Cualquier sugerencia alternativa sobre cómo podría echar un vistazo a alguna sección remota del código y luego volver rápidamente a la posición anterior también es bienvenida.

Author: Matt McClure, 2009-01-15

7 answers

Puede controlar la cantidad en variable mouse-wheel-scroll-amount (en mwheel.el).

EDITAR: Por ejemplo, Añadir (setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil))) a tu .emacs para 1 línea a la vez.

También tengo (setq mouse-wheel-progressive-speed nil) en mi .emacs que creo que es un comportamiento más agradable.

 77
Author: luapyad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-15 07:27:57

Utilizo breadcrumb para dejar un rastro alrededor de un búfer o todos los búferes.

Suelte la migaja, vaya a ver lo que quiera/necesite, luego vuelva a la migaja. Esto es lo que tengo las cosas establecidas para, FWIW:

(global-set-key [(f6)] 'bc-set)
(global-set-key [(shift f6)] 'bc-list)
(global-set-key [(control f6)] 'bc-previous)
(global-set-key [(meta f6)] 'bc-next)
(global-set-key [(shift control f6)] 'bc-local-previous)
(global-set-key [(shift meta f6)] 'bc-local-next)

Espero que eso ayude.

 6
Author: Joe Casadonte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-15 13:19:34

Es imposible que 'point' exista en algún lugar fuera de la vista actual; todos los comandos de movimiento de puntos también mueven la pantalla. Creo que es una suposición fundamental que Emacs hace.

Creo que lo que quieres en tu último punto-echar un vistazo a una sección remota y regresar-se puede lograr con registros:

Esto guarda su posición en el registro A:

C-x r A

Y esto restaura la posición del registro A:

C - x r j A

Si haces esto mucho, te aconsejo que los vincules a cosas un poco menos detalladas:)

 2
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-15 07:25:28

Puede usar alguna solución de marcadores o el registro, pero también la marca incorporada y el anillo de marca-

(default binding) 

C-Space to set mark (push a mark in mark ring)
C-u C-Space to pop a mark off the ring; repeat this a few more time should 
            get you where you like to be

O si no tiene la región de resaltado activada o no le importa ver el resaltado,

C-x C-x (exchange-point-and-mark) switch between you current point and your previous mark.
 2
Author: polyglot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-15 14:50:43

Cualquier sugerencia alternativa sobre cómo podría echar un vistazo a alguna sección remota del código y luego volver rápidamente a la posición anterior también es bienvenida.

Ch 3 of Bob Glickstein "Writing GNU Emacs Extensions" construye una función unscroll (para volver a una ubicación especificada en una pila de comandos scroll) como ejemplo de programación.

El código aparece en línea, pero hay un conflicto informado con el BCE, si lo utiliza.

 2
Author: Michael Paulukonis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-15 20:53:51

Aquí está mi configuración:

(setq mouse-wheel-scroll-amount '(0.07))
(setq mouse-wheel-progressive-speed nil)
(setq ring-bell-function 'ignore)
 2
Author: Ivelin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-26 06:28:03

Usar marcadores con nombre automático (easy-come-easy-go) -- Marcador+. Solo tienes que pulsar una tecla para crear o eliminar easy tan fácil como establecer la marca. Pueden ser persistentes o temporales. Se pueden resaltar automáticamente, si lo desea (la franja o la línea).

 1
Author: Drew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-02 18:03:19