Ändern Sie die Cursorposition nicht, wenn Sie in Emacs scrollen

6837
NVaughan

Gibt es eine Möglichkeit, das Emacsautomatische Verschieben meiner Position des Textcursors (auch als Punkt bezeichnet) zu stoppen, während ich scrolle? Ich verliere immer wieder meine Position und zeichnet mit diesem nervigen Verhalten.

Ich habe den folgenden Vorschlag ohne Erfolg getestet:

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

(Ich habe Emacs24.2 auf Ubuntu und OS X.)

15

4 Antworten auf die Frage

8
artscan

Ich denke, dass Sie das Verhalten der Cursor (Punkt) wollen und sichtbaren Bereich sollte wie in sein notepad, gedit, anderen moderne Redaktion: Fähigkeit unabhängig von Punktposition sichtbaren Bereich zu ändern und sofort sichtbaren Bereich zurückkehrt Position zu Punkt nach dem Punkt zu bewegen. Aber emacshat eine andere Vorstellung: Der sichtbare Bereich folgt immer der Punktposition und umgekehrt.

Siehe auch https://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs

Die vorherige Antwort zeigt eine spezielle Sprache: Wenn Sie den sichtbaren Bereich (mit dem Punkt zusammen) weit weg von der aktuellen Position verschieben möchten, und um den Punkt genau an die vorherige Position zu bringen, sollten Sie es sich zur Gewohnheit machen mark-ring. Es gibt immer einen Weg durch mark ringdie aktuelle Arbeitsposition: viele Befehle, wie isearch-forward, beginning-of-buffer, ace-jump-modeautomatisch vorherige Position speichern auf mark ringund Sie sollten nicht verwenden, C-<SPC> C-<SPC>vor, aber nur C-u C-<SPC>für einen Sprung zurück. Scroll-Befehle wie scroll-upoder mwheel-scrollspeichern die vorherige Position standardmäßig nicht automatisch, da dies zu viele übermäßige Markierungen verursachen kann.

You can use commands clone-indirect-buffer or view-buffer-other-window for independent work with buffer in few places. And use command recenter-top-bottom (C-l) to continuously hold point in center of visible area.

Thanks. Interesting answer. There seems to be a problem with my Emacs, though (both in Mac and in Ubuntu): `C-u C-` doesn't seem to be working. I don't know if it's a problem of `cua-mode` or something. I tried running Emacs with `-q` option, but nothing changed. Any ideas? NVaughan vor 11 Jahren 1
7
Kirill

I don't know if there is a way to stop emacs from moving your point when scrolling. But if you would like to save your location to return to it later, you can use the mark ring.

That is, type C-<SPC> C-<SPC> to push the current point location onto the mark ring, then later type C-u C-<SPC> to set point to the previous location in the mark ring.

3
Sergey

I use this:

;;; scrollers - M-f, M-b (global-set-key "\M-f" "\C-u1\C-v") (global-set-key "\M-b" "\C-u1\M-v") 
0
one of Japanese Emacs user

Folgendes funktioniert für mich:

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