É possível gerar novamente .bashrc e .zshrc E remover funções uma vez dentro delas sem reiniciar?

1

Eu tive uma função dentro de .zshrc que removi.

Agora, quando eu tento dar origem, ele realmente o origina, mas não remove a função que estava dentro de .zshrc da memória.

Existe uma maneira de remover a função (agora acredito na memória, no namespace zsh ou algo assim) sem reiniciar minha máquina?

    
por Somebody still uses you MS-DOS 07.03.2011 / 22:22

2 respostas

4

No zsh, você pode remover uma função com unhash -f functionname ou unfunction functionname .

Isso não elimina automaticamente as funções que você removeu de um determinado arquivo de inicialização, porque, é claro, o shell não se lembra de onde ele o originou e atribui qualquer significado especial ao re-sourcing do arquivo. mesmo arquivo. Então você terá que saber o que você quer esquecer.

Como você mencionou .bashrc no assunto: o equivalente do bash é unset -f functioname

    
por 07.03.2011 / 22:28
1

unhash -mf "*" pode ser usado para limpar todas as funções.
Uma vez que irá eliminar as funções padrão de zsh goodness, você precisará recarregar /etc/zsh/zshrc .

Eu tenho o seguinte no começo do meu .zshrc:

# Clear all functions and aliases
unhash -mf "*"
unhash -ma "*"
. /etc/zsh/zshrc  # reload standard functions and aliases
    
por 07.12.2014 / 19:03