Eu encontrei algum tipo de comportamento O (n ^ 2) ou pior ao exibir arquivos muito grandes (por exemplo, 128 MB) no Emacs e pular para o final do arquivo. Eu acho que pode ter a ver com meu algoritmo de cores para colorir o texto contextualmente. Se eu digitar control-g (sair do teclado), a operação não será afetada. Eu gostaria de alguma maneira de recuperar minha sessão do emacs sem simplesmente matá-la. Tentei enviar um SIGINT, mas o emacs acabou de sair. Existe algum sinal que eu possa enviar ou de alguma outra maneira (talvez em um depurador) para forçar a ação que está sendo executada a desistir e devolver o controle para mim?
emacs
syntax-highlighting
WilliamKF
fonte
fonte
font-lock-keywords
regexps com cuidado para tentar encontrar o problema.Respostas:
Duvido que seja o modo de bloqueio de fonte. Provavelmente, apenas as seções se aproximam do que é visível. Provavelmente está copiando dados na memória.
Não sei o que faria (ou qual versão do emacs você está executando), mas você poderia tentar um sinal PROVÁVEL não destrutivo (USR1 ou USR2).
Ou você pode ir dormir e ver se ele se recupera.
fonte
kill -USR2
para o emacs-mac funcionou para mim em uma situação semelhante - carregou um arquivo grande no modo js2 e iniciou uma pesquisa. USR2 encerra o isearch e entra no depurador. Muito melhor do que matar o processo!Não conheço qualquer manipulação de sinal que o emacs faça, mas você pode usar o Emacs Server colocando
server-start
seu arquivo ~ / .emacs para poder fazer RPC na instância em execução do emacs.Então, quando você quiser matar o emacs e escrever, poderá ligar do seu shell
emacsclient -e '(save-buffers-kill-emacs t)'
.fonte