Antes de mudar para o eshell, eu tinha a configuração do zsh para que:
- Grave no arquivo de histórico após cada comando
- Acrescente ao invés de sobrescrever o arquivo de histórico, portanto, ao executar vários shells, todos eles serão mesclados em um grande histórico
As duas opções do zsh estão documentadas aqui (consulte APPEND_HISTORY e INC_APPEND_HISTORY).
Isso é super útil quando combinado com um grande tamanho de histórico, porque você pode abrir um novo shell semanas após emitir um comando e encontrá-lo em seu histórico (sem essas opções, um histórico grande é inútil, pois conterá apenas o histórico dos mais recentes Concha). Isso também significa que você pode abrir novos shells e fazer com que eles conheçam imediatamente seus comandos mais recentes em outros shells. Existe alguma maneira de configurar eshell com esse comportamento? A primeira bala parece fácil o suficiente, mas anexar parece mais difícil ...
eshell-exit-hook
a zero, porque isso automaticamente será carregado quando eshell começa:(add-hook 'eshell-exit-hook 'eshell-write-history nil t)
. Eu defini o gancho para ser localmente nulo dessa maneira (é globalmente nulo por padrão):(add-hook 'eshell-mode-hook '(lambda () (setq eshell-exit-hook nil)))