No cambie la posición del cursor al desplazarse en Emacs

No cambie la posición del cursor al desplazarse en Emacs

¿Hay alguna manera de evitar Emacsque mueva automáticamente la posición del cursor de texto (también conocido como punto) mientras me desplazo? Sigo perdiendo mi ubicación y marcas con este comportamiento molesto.

Probé la siguiente sugerencia, sin éxito:

(setq scroll-preserve-screen-position t
scroll-conservatively 0)

(Estoy ejecutando Emacs24.2 en Ubuntu y OS X).

Respuesta1

Creo que desea que el comportamiento del cursor (punto) y el área visible sea como en notepadotros gediteditores modernos: capacidad de cambiar el área visible independientemente de la posición del punto y devolver inmediatamente el área visible a la posición del punto después de mover el punto. Pero emacstiene otra concepción: el área visible siempre sigue la posición del punto y viceversa.

Ver tambiénhttps://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs

La respuesta anterior muestra un modismo especial: si desea mover el área visible (con el punto juntos) lejos de la posición actual y luego devolver el punto exactamente a la posición anterior, debe tener el hábito de usarlo mark-ring. Siempre hay una manera de llegar mark ringa la posición de trabajo actual: muchos comandos, como isearch-forward, guardan automáticamente la posición anterior y no debes usarlos antes, sino solo para saltar hacia atrás beginning-of-buffer. Los comandos de desplazamiento, como o , no guardan automáticamente la posición anterior de forma predeterminada porque pueden producir demasiadas marcas excesivas.ace-jump-modemark ringC-<SPC> C-<SPC>C-u C-<SPC>scroll-upmwheel-scroll

Puede utilizar comandos clone-indirect-buffero view-buffer-other-windowtrabajar de forma independiente con el búfer en algunos lugares. Y use el comando recenter-top-bottom( C-l) para mantener continuamente el punto en el centro del área visible.

Respuesta2

No sé si hay una manera de evitar que emacs mueva el punto al desplazarse. Pero si desea guardar su ubicación para volver a ella más tarde, puede usar elanillo de marca.

Es decir, escriba C-<SPC> C-<SPC>para insertar la ubicación del punto actual en el anillo de marca y luego escriba C-u C-<SPC>para establecer el punto en la ubicación anterior en el anillo de marca.

Respuesta3

Yo uso esto:

;;; scrollers - M-f, M-b
(global-set-key "\M-f" "\C-u1\C-v")
(global-set-key "\M-b" "\C-u1\M-v")

Respuesta4

Lo siguiente me funciona:

(custom-set-variables
 '(scroll-conservatively 1000)
 '(scroll-margin 3)
 )

información relacionada