Beim Laufen previous-line
, C-p
oder <up>
springt der Cursor eine Zeile ohne Probleme oder Verzögerungen auf. Beim Laufen next-line
, C-n
oder <down>
springt der Cursor richtig eine Zeile nach unten, aber mit einer deutlichen Verzögerung. Wenn ich die Nach-Unten-Taste gedrückt halte, kann ich nicht einmal sehen, dass sich der Punkt bewegt. Er erscheint nur irgendwo darunter. Ich habe den Emacs-Profiler ausgeführt und es scheint, dass der Schuldige ist cl-position
. Was sich herausstellt, ist, dass previous-line
der Cursor buchstäblich nur bewegt wird, während next-line
eine ganze Reihe von Funktionen ausgeführt werden.
Was ist das Problem und wie kann es behoben werden?
visual-line-mode
? Hast du einige sehr lange Schlangen?visual-line-mode
und ich habe keine langen Schlangen.Antworten:
Ich habe eine Antwort auf meine Frage gefunden, indem ich das freche Stück eingegrenzt und gegoogelt habe. Ich habe es geschafft, die Verzögerung um das Zehnfache zu reduzieren. Ich meine ... Es ist verrückt, wie viel Rechenleistung verbraucht
next-line
wurde, um einen Cursor nach unten zu bewegen?!?!Die Reparatur:
Fügen Sie diesen Code in Ihre init.el ein:
(setq auto-window-vscroll nil)
Der Beweis:
Jetzt
next-line
triggert also nicht dieline-move-partial
Reduzierung der Verzögerung. Ich erinnere mich nicht, mich eingerichtetauto-window-vscroll
zu habent
. Es war nirgendwo in einer meiner.el
Dateien, ich bin mir nicht sicher, wie es anfangs eingestellt wurdet
. Wenn also jemand Leistungsprobleme mit der Cursorbewegung hat, wird die Verzögerung mit der obigen Korrektur von ca. 50% -80% CPU-Zeit auf 5% CPU-Zeit reduziert !!!Um schnell zu überprüfen, ob Sie betroffen sind, führen Sie einfach aus
C-h v auto-window-vscroll
. Wenn dies dert
Fall ist, treten möglicherweise schwerwiegende Leistungsprobleme auf. Überprüfen Sie mit dem Emacs-Profiler, ob die Cursorbewegung tatsächlich eine Verzögerung verursacht.Viel Glück, Emacs-Liebhaber !!!
Fix-Quelle
quelle
M-x report-emacs-bug
.Ich bin mir nicht ganz sicher, was das Problem ist, aber Ihr Profiler-Bericht scheint darauf hinzudeuten, dass Posn-at-Point mehr Redisplay als erwartet ausführt, was wiederum eine Neuberechnung der Mode-Line zur Folge hat und dass Powerline mehr Mühe beim Merken machen sollte seine Berechnung für die Modeline.
IOW, ich schlage vor, dass Sie
M-x report-emacs-bug
und Sie möglicherweise auch den Powerline-Betreuern einen Fehler melden.quelle
Es sieht so aus, als ob Sie Powerline verwenden. Insbesondere zeigen Sie den Projektilprojektnamen in Ihrer Modeline an. In letzter Zeit wurden einige Verbesserungen am Projektilpaket vorgenommen, die einige davon abmilderten. Stellen Sie sicher, dass Sie auf dem neuesten Stand sind.
https://github.com/bbatsov/projectile/issues/1212
https://github.com/bbatsov/projectile/pull/1213
Es ist auch möglich, Funktionen zu speichern, die die Modeline aufruft. Ich habe viel mit meiner Modeline gemacht, um es sehr schnell zu machen.
quelle