Em vez do shell M-x, execute o seguinte código lisp do emacs usando M -:
(shell (current-buffer))
No emacs, geralmente tenho vários buffers de shell abertos e uso o buffer de renomeação para rastreá-los. Às vezes, inadvertidamente, fecho o shell atingindo muitos ^ D's, ou estou em um sistema que automaticamente desativa os shells inativos. Existe uma maneira de iniciar um novo shell no mesmo buffer? Porque eu renomei o buffer do shell digitando M-x shell irá iniciar um shell em um novo shell buffer, não o buffer atual.
Isso não é perfeito, mas te dá a maior parte do que você quer. Coloque este código no seu arquivo de inicialização .emacs :
(defun my-shell-mode-hook ()
"Added to shell-mode-hook. This function runs every time function shell
starts a shell."
(rename-buffer "My Shell" 'unique))
(add-hook 'shell-mode-hook 'my-shell-mode-hook)
Sinta-se à vontade para alterar a string "My Shell" para outro nome. Se você usar M-x shell RET no buffer My Shell , o novo shell será iniciado no mesmo buffer. Infelizmente, se você fizer isso em outro buffer, receberá um novo buffer chamado My Shell<2> , que não é tão bonito. Acho que o último efeito pode ser eliminado pela função que aconselha shell , então que muda para o buffer My Shell antes de executar a função shell real.
Tags emacs shell text-editors elisp