Lors de l'exécution previous-line
, C-p
ou <up>
le curseur saute sur une ligne sans aucun problème ou retard. Lors de l'exécution next-line
, C-n
ou <down>
le curseur saute correctement sur une ligne, mais avec un décalage important. Lorsque je maintiens la touche enfoncée, je ne vois même pas le point bouger, il apparaît juste quelque part en dessous. J'ai couru le profileur Emacs et il semble que le coupable soit cl-position
. Ce que cela previous-line
signifie, c'est que bouge littéralement le curseur, tout en next-line
exécutant beaucoup de fonctions.
Quel est le problème et comment le résoudre?
visual-line-mode
? Avez-vous de très longues files d'attente?visual-line-mode
et je n'ai pas de longues files d'attente.Réponses:
J'ai trouvé une réponse à ma question en réduisant le peu vilain et googler. J'ai réussi à réduire le décalage 10 fois !!!! Je veux dire ... C'est fou de voir combien de puissance de calcul
next-line
utilisait pour déplacer un curseur vers le bas?!?!La solution:
Mettez ce code dans votre init.el:
(setq auto-window-vscroll nil)
La preuve:
Maintenant
next-line
ne déclencheline-move-partial
donc pas la réduction du décalage. Je ne me souviens pas de la mise en placeauto-window-vscroll
det
. Ce n'était nulle part dans aucun de mes.el
fichiers, je ne sais pas comment cela a été configurét
pour commencer. Donc, si quelqu'un a des problèmes de performances avec le mouvement du curseur, la correction ci-dessus réduira le décalage d'environ 50% à 80% du temps de processeur à 5% du temps de processeur !!!Pour vérifier rapidement si vous êtes affecté, lancez-le
C-h v auto-window-vscroll
. S'il est défini surt
vous, il se peut que vous rencontriez des problèmes de performances majeurs. Vérifiez avec le profileur Emacs si le mouvement du curseur provoque effectivement un décalage.Bonne chance à mes amis Emacs !!!
Source de correction
la source
M-x report-emacs-bug
.Je ne sais pas vraiment quel est le problème, mais votre rapport de profileur semble indiquer que posn-at-point effectue plus de réaffichage que prévu, ce qui entraîne à son tour le recalcul de la ligne de mode, et que le courant porteur devrait faire plus d'efforts pour mémoriser son calcul pour la modeline.
IOW, je vous suggère
M-x report-emacs-bug
et vous pourriez également signaler un bogue aux mainteneurs Powerline.la source
Il semble que vous utilisiez Powerline. En particulier, vous affichez le nom du projet projectile dans votre modélisation. Il y a eu récemment des améliorations au paquet de projectiles qui ont atténué une partie de cela. Assurez-vous que vous êtes à jour.
https://github.com/bbatsov/projectile/issues/1212
https://github.com/bbatsov/projectile/pull/1213
Il est également possible de mémoriser des fonctions que la modeline appelle. J'ai fait beaucoup de choses sur ma modeline pour le rendre très rapide.
la source
J'ai remarqué que mon
doom-modeline
contribue également au retard. En fait, il est dit dans le doc dedoom-modeline
:Après le réglage,
(setq doom-modeline-enable-word-count nil)
j'ai eu une accélération notable des mouvements du curseur.la source