¿Hay alguna manera de evitar Emacs
que 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 Emacs
24.2 en Ubuntu y OS X).
Respuesta1
Creo que desea que el comportamiento del cursor (punto) y el área visible sea como en notepad
otros gedit
editores 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 emacs
tiene 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 ring
a 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-mode
mark ring
C-<SPC> C-<SPC>
C-u C-<SPC>
scroll-up
mwheel-scroll
Puede utilizar comandos clone-indirect-buffer
o view-buffer-other-window
trabajar 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)
)