J'ai rencontré une sorte de comportement O (n ^ 2) ou pire lors de la visualisation de fichiers très volumineux (par exemple 128 Mo) dans Emacs et du saut à la fin du fichier. Je pense que cela peut avoir à voir avec mon algorithme de coloration pour colorer le texte contextuellement. Si je tape control-g (keyboard-quit), l'opération n'est pas affectée. Je voudrais un moyen de récupérer ma session emacs sans simplement la tuer. J'ai essayé d'envoyer un SIGINT, mais emacs vient de sortir. Y a-t-il des signaux que je peux envoyer, ou d'une autre manière (peut-être dans un débogueur) pour forcer l'action en cours d'exécution à abandonner et à me rendre le contrôle?
emacs
syntax-highlighting
WilliamKF
la source
la source
font-lock-keywords
attentivement vos expressions rationnelles pour essayer de trouver le problème.Réponses:
Je doute que ce soit le mode de verrouillage des polices. Cela ne fait probablement que des sections proches de ce qui est visible. Il s'agit probablement de copier des données en mémoire.
Je ne sais pas ce que cela ferait (ou quelle version d'emacs vous utilisez) mais vous pouvez essayer un signal PROBABLY non destructif (USR1 ou USR2).
Ou vous pouvez vous endormir et voir si elle se rétablit.
la source
kill -USR2
à emacs-mac a fonctionné pour moi dans une situation similaire - a chargé un gros fichier en mode js2 et a commencé une recherche. USR2 quitte l'isearch et entre dans le débogueur. Bien mieux que de tuer le processus!Je ne suis pas au courant de la gestion du signal qu'emacs fait, mais vous pouvez utiliser le serveur Emacs en plaçant
server-start
votre fichier ~ / .emacs afin que vous puissiez faire RPC sur votre instance d'emacs en cours d'exécution.Ensuite, lorsque vous voulez tuer emacs et écrire, vous pouvez appeler depuis votre shell
emacsclient -e '(save-buffers-kill-emacs t)'
.la source