Я столкнулся с некоторым типом поведения O (n ^ 2) или хуже при просмотре очень больших (например, 128 МБ) файлов в Emacs и переходе к концу файла. Я думаю, что это может иметь отношение к моему алгоритму окраски, чтобы окрашивать текст контекстно. Если я наберу control-g (клавиатура-выход), операция не будет затронута. Я хотел бы как-нибудь восстановить мой сеанс Emacs, не убивая его. Я попытался отправить SIGINT, но emacs только что вышел. Могу ли я послать какие-либо сигналы или каким-либо другим способом (возможно, в отладчике), чтобы заставить любое выполняемое действие отказаться и вернуть мне контроль?
emacs
syntax-highlighting
WilliamKF
источник
источник
font-lock-keywords
Внимательно изучите свои регулярные выражения, чтобы попытаться найти проблему.Ответы:
Я сомневаюсь, что это режим блокировки шрифтов. Это, вероятно, только делает разделы рядом с тем, что видно. Это, вероятно, копирование данных в памяти.
Я не знаю, что он будет делать (или какую версию emacs вы используете), но вы можете попробовать НАДЕЖНЫЙ неразрушающий сигнал (USR1 или USR2).
Или вы могли бы пойти спать и посмотреть, излечится ли это.
источник
kill -USR2
в emacs-mac у меня сработала в аналогичной ситуации - загрузил большой файл в js2-mode и запустил isearch. USR2 вышел из поиска и вошел в отладчик. Намного лучше, чем убивать процесс!Я не знаю о какой-либо обработке сигналов, которую выполняет emacs, но вы можете использовать Emacs Server, вставив
server-start
файл ~ / .emacs, чтобы вы могли выполнять RPC на своем работающем экземпляре emacs.Затем, когда вы захотите убить emacs и написать, вы можете звонить из вашей оболочки
emacsclient -e '(save-buffers-kill-emacs t)'
.источник