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

18

¿Hay alguna manera de evitar Emacsmover 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 en OS X.)

NVaughan
fuente

Respuestas:

11

Creo que quiere que el comportamiento de cursor (punto) y el área visible debe ser como en notepad, gedit, otros editores modernos: la capacidad para cambiar el área visible de forma independiente de la posición del punto y vuelven inmediatamente área visible a la posición de punto después del punto en movimiento. Pero emacstiene otra concepción: el área visible siempre sigue la posición del punto y viceversa.

Ver también /programming/9616623/ctrl-up-down-style-scrolling-in-emacs

La respuesta anterior muestra un lenguaje especial: si desea mover el área visible (con el punto junto) lejos de la posición actual y luego devolver el punto exactamente en la posición anterior, debe tener el hábito de usar mark-ring. Siempre hay un camino a través de mark ringla posición de trabajo actual: muchos comandos, como isearch-forward, beginning-of-buffer, ace-jump-modeGuardar automáticamente en posición anterior mark ringy no debe utilizar C-<SPC> C-<SPC>antes, pero sólo C-u C-<SPC>para volver salto. Los comandos de desplazamiento, como scroll-upo mwheel-scroll, no guardan automáticamente la posición anterior de forma predeterminada porque puede producir demasiadas marcas excesivas.

Puede usar comandos clone-indirect-buffero view-buffer-other-windowpara trabajo independiente con buffer en pocos lugares. Y use el comando recenter-top-bottom( C-l) para mantener continuamente el punto en el centro del área visible.

artscan
fuente
2
Gracias. Interesante respuesta. Sin embargo, parece haber un problema con mi Emacs (tanto en Mac como en Ubuntu): C-u C-<SPC>no parece funcionar. No sé si es un problema cua-modeo algo así. Intenté ejecutar Emacs con la -qopción, pero nada cambió. ¿Algunas ideas?
NVaughan
Eso es muy malo ... Encuentro esto súper molesto, porque lo uso highlight-symbol-mode. Puse el cursor en una variable y resalta todas las ocurrencias. Cuando comienzo a desplazarme, el cursor deja la variable y se pierden todos los resaltados. Emacs sería mucho mejor si al menos se comportara como otros editores contemporáneos con respecto al desplazamiento.
itmuckel
7

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

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

Kirill
fuente
3

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")
Sergey
fuente
0

Lo siguiente funciona para mí:

(custom-set-variables
 '(scroll-conservatively 1000)
 '(scroll-margin 3)
 )
uno de los usuarios japoneses de Emacs
fuente