reiniciando o processo do shell no buffer

4

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.

    
por David Nehme 26.04.2012 / 21:08

2 respostas

3

Em vez do shell M-x, execute o seguinte código lisp do emacs usando M -:

(shell (current-buffer))
    
por 18.08.2012 / 23:42
1

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.

    
por 02.05.2012 / 21:07