Gibt es eine schnelle Möglichkeit, den Punkt nach der Ausgabe scroll-up
oder scroll-down
in Emacs an seine vorherige Position zurückzusetzen (vorausgesetzt, ich habe mich nicht daran erinnert, ihn dem Markierungsring hinzuzufügen)?
Gibt es alternativ eine Möglichkeit (ohne Beeinträchtigung des Markierungsrings), das Bildlaufverhalten so zu ändern, dass durch das Aufwärts- und Abwärtsscrollen (oder umgekehrt) der Punkt an seine ursprüngliche Position zurückgesetzt wird? (Bsp. Bildlauf ausführen, um den Punkt genau um x Zeilen zu verschieben, wobei x die Bildschirmhöhe ist)
Ich bin gerade dabei, mich an Emacs zu gewöhnen, und dies ist eine der häufigsten Situationen, die Flüche provozieren: Ich scrolle herum, um einen anderen Teil meines Codes anzuzeigen, ohne daran zu denken, meine Zeile dem Markierungsring hinzuzufügen, und es ist dann schmerzhaft, es zu versuchen die Codezeile, an der ich gearbeitet habe, zu verschieben. Während ich nach einer technischen Lösung frage, würde mich auch interessieren, wie erfahrene Benutzer dieses Problem vermeiden. Gewöhnen Sie sich einfach daran, eine Marke zu setzen, das Fenster zu teilen, um sich umzusehen, oder ein anderes Muster zu verwenden?
Vielen Dank
scroll-up-line
(was ich mit meinem Scrollrad verwende), dass der Cursor ein Zeichen vorwärts bewegt, wenn er den oberen oder unteren Rand des Bildschirms berührt.(setq scroll-preserve-screen-position 'always)
. Andernfalls wirdC-v M-v
der Startpunkt nicht zurückgesetzt. (Die Position des zweiten Punkts ist auf dem ersten Bildschirm sichtbar, sodass der Punkt nicht zurückgesetzt wird.)Ich habe festgestellt, dass es gut funktioniert
goto-last-change.el
, wenn Sie an den Ort zurückkehren, an dem Sie zuletzt eine Bearbeitung vorgenommen haben. Ich mag die Bindung:quelle
C-_ C-f C-_
(rückgängig machen, verschieben, rückgängig machen).Als Antwort auf Ihre Frage, wie ich das von Ihnen beschriebene Problem vermeide (woanders im Code suchen und dann zu dem Punkt zurückkehren, an dem ich gearbeitet habe) ...
Normalerweise teile ich den Bildschirm auf, wenn ich kurz woanders suchen muss. Dann kann ich mit zum Originalbildschirm zurückkehren, mit
C-x o
abspaltenC-x 1
und ich bin wieder normal.Ich benutze auch die Vorwärts- und Rückwärtssuche, um einen bestimmten Punkt von Interesse im Code zu finden. Ich finde, dass dies eine ziemlich effiziente Möglichkeit ist, im Code zu navigieren, wenn ich weiß, wonach ich suche.
quelle
Wenn ich nur ein paar Zeilen von der Stelle scrolle, an der ich mich gerade befinde, kann ich folgendermaßen durch das Fenster scrollen, ohne den Punkt zu verschieben:
Wenn ich zu einem völlig anderen Abschnitt einer Datei übergehe (oder zu einer anderen Datei insgesamt), verwende ich manchmal,
breadcrumb
obwohl es viele andere Pakete gibt, die ähnliche Dinge tun.Wenn ich zwei Codebereiche gleichzeitig visuell sehen möchte, teile ich den Rahmen horizontal in zwei Fenster auf und verwerfe das zweite Fenster, wenn ich fertig bin.
Meistens verwende ich jedoch nur zwei Frames, von denen einer mein aktueller Arbeitsframe und der andere mein Referenzframe ist, mit dem ich um die gleichen oder andere Dateien herumspringe.
quelle
C-l
.