Non modificare la posizione del cursore durante lo scorrimento in Emacs


18

C'è un modo per impedire lo Emacsspostamento automatico della posizione del cursore del testo (aka, punto) mentre sto scorrendo? Continuo a perdere la mia posizione e segni con questo comportamento fastidioso.

Ho testato il seguente suggerimento, senza successo:

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

(Sto eseguendo Emacs24.2 su Ubuntu e su OS X.)

Risposte:


11

Penso che tu voglia il comportamento del cursore (punto) e l'area visibile dovrebbe essere come in notepad, geditaltri editor moderni: capacità di cambiare l'area visibile indipendentemente dalla posizione del punto e di restituire immediatamente l'area visibile alla posizione del punto dopo aver spostato il punto. Ma emacsha un'altra concezione: l'area visibile segue sempre la posizione del punto e viceversa.

Vedi anche /programming/9616623/ctrl-up-down-style-scrolling-in-emacs

La risposta precedente mostra un linguaggio speciale: se vuoi spostare l'area visibile (con il punto insieme) lontano dalla posizione corrente e quindi per restituire il punto esattamente nella posizione precedente, dovresti avere l'abitudine di usare mark-ring. C'è sempre un modo attraverso mark ringalla posizione di lavoro corrente: molti comandi, come isearch-forward, beginning-of-buffer, ace-jump-modeautomaticamente salvare la posizione precedente mark ringe non si deve usare C-<SPC> C-<SPC>prima, ma solo C-u C-<SPC>per la parte posteriore salto. I comandi di scorrimento, come scroll-upo mwheel-scroll, non salvano automaticamente la posizione precedente per impostazione predefinita perché potrebbero produrre troppi segni eccessivi.

È possibile utilizzare i comandi clone-indirect-buffero view-buffer-other-windowper lavorare in modo indipendente con il buffer in pochi punti. E usa command recenter-top-bottom( C-l) per tenere continuamente il punto al centro dell'area visibile.


2
Grazie. Risposta interessante. Sembra che ci sia un problema con il mio Emacs (sia su Mac che su Ubuntu):C-u C-<SPC> non sembra funzionare. Non so se sia un problema cua-modeo qualcosa del genere. Ho provato a eseguire Emacs con l' -qopzione, ma non è cambiato nulla. Qualche idea?
NVaughan

È un peccato ... Lo trovo molto fastidioso, perché lo uso highlight-symbol-mode. Ho impostato il cursore su una variabile ed evidenzia tutte le occorrenze. Quando inizio lo scorrimento, il cursore lascia la variabile e tutti i punti salienti vengono persi. Emacs sarebbe molto meglio se almeno si comportasse come gli altri editor contemporanei per quanto riguarda lo scorrimento.
Itmuckel,

7

Non so se c'è un modo per impedire a emacs di spostare il tuo punto durante lo scorrimento. Ma se desideri salvare la tua posizione per ripristinarla in un secondo momento, puoi utilizzare l' anello di marcatura .

Cioè, digitare C-<SPC> C-<SPC>per spingere la posizione del punto corrente sulla ghiera dei segni, quindi digitare C-u C-<SPC>per impostare il punto sulla posizione precedente nella ghiera dei segni.


3

Io uso questo:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.