Preservar o histórico do tcsh em várias janelas de terminal


8

Como podemos preservar ou manter o mesmo histórico em vários terminais?

A mesma pergunta, mas para o shell bash, foi discutida no link abaixo

Preserve o histórico do bash em várias janelas de terminal

deixe-me saber as configurações correspondentes para o shell tcsh?


Para mais informações sobre o tcsh history, consulte man tcsh. A pesquisa history -Sdeve direcioná-lo para a parte mais relevante.
Randall

Respostas:


7

Essas variáveis ​​configuram o histórico para mesclar-se em vez de substituir e não salvar duplicatas:

set history=1000
set histdup=erase
set savehist=(1000 merge)

o molho secreto é esta linha:

alias precmd 'history -S; history -M'

que salvará e mesclará seu histórico antes de imprimir o prompt - ou seja, após cada comando digitado.

todas as opções acima devem ser adicionadas ao seu arquivo .tcshrc .


Quando adicionei isso, alias precmd 'history -S; history -M'nada ocorreu quando escrevi qualquer comando. Há algo mais que deve ser feito?
Ayman Salah

@ AymanSalah o que ocorre não é óbvio - é o .historyarquivo (ou o histfilevalor da variável do shell, se definido) sendo gravado no disco. Sem o precmdalias definido, ls -l .historymostrará o .historyarquivo como intocado. Com precmd definido como acima, ls -l .historymostrará o carimbo de data e hora atualizados, conforme ele é gravado com cada comando.
Randall

@ Randall Obrigado por apontar isso. Eu tive problemas na sessão do shell. O que você está dizendo é 100% correto.
Ayman Salah 01/01

1

Além da resposta de Idan , quero acrescentar que alias precmd 'history -S; history -M'potencialmente pode atrapalhar o arquivo de histórico, pois também grava o sinal SIGINT e EOF (Ctrl + C e Ctrl + D).

insira a descrição da imagem aqui

Uma maneira melhor seria salvar e mesclar o histórico atual do shell após executar um comando.

Você pode conseguir isso com esta configuração abaixo, pois o tcsh não reconhece SIGINT ou EOF como um comando válido.

alias postcmd       "history -S; history -M"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.