Gostaria de reiniciar minha sessão zsh, porque mantenho uma sessão tmux persistente e mudo ~/.zshrc
com frequência e faço source ~/.zshrc
. No entanto, percebi que isso fica mais lento com o tempo (por exemplo, for i in
a sequência 50 ; do source ~/.zshrc; echo "a"; done
começa a imprimir 'a' s rapidamente e fica mais lenta rapidamente).
Eu li as sugestões aqui para reiniciar o zsh e a sugestão é simplesmente executar zsh
or zsh -l
. No entanto, se eu fizer isso, crio uma sessão zsh 'aninhada', se entendi corretamente. Com isso quero dizer:
# Simulate slowed zsh session
for i in `seq 50`; do source ~/.zshrc; echo "a"; done
# use zsh to make it faster "child" zsh
zsh
# confirm fast
source ~/.zshrc; # fast
# revert back to "parent" zsh
exit
# confirm old slow session is still there
source ~/.zshrc; # slow
Eu tenho uma sessão tmux com várias janelas e um histórico de comandos que pretendo manter persistente. É por isso que procuro uma solução sustentável.
Pergunta bônus:alguém tem alguma idéia de por que source ~/.zshrc
pode estar desacelerando?
# Path to your oh-my-zsh installation.
export ZSH="/Users/username/.oh-my-zsh"
ZSH_THEME="themename"
# Which plugins would you like to load?
# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
)
source $ZSH/oh-my-zsh.sh
# activate zsh-syntax-highlighting (brew install zsh-syntax-highlighting)
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
function proxyON() {
...redacted
}
function proxyOFF(){
http_proxy=
https_proxy=
HTTP_PROXY=
HTTPS_PROXY=
export http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
}
function nukeDS_Store(){
find ~/Projects/mys/ -name '.DS_Store' -delete
}
function reload-ssh() {
ssh-add -e /Library/OpenSC/lib/opensc-pkcs11.so >> /dev/null
if [ $? -gt 0 ]; then
echo "Failed to remove previous card"
fi
ssh-add -s /Library/OpenSC/lib/opensc-pkcs11.so
}
alias fastBuild='mvn install --offline -DskipTests=true'
## History Settings
# set history size
export HISTSIZE=1000000
#save history after logout
export SAVEHIST=1000000
##history file
export HISTFILE=~/.zhistory
##save only one command if 2 common are same and consistent
setopt HIST_IGNORE_DUPS
##add timestamp for each entry
setopt EXTENDED_HISTORY
##have seperate history for each
setopt nosharehistory
##dont append into history file
setopt NOINC_APPEND_HISTORY
# Set java version
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_191`
# Maven
export M3_HOME="/Applications/apache-maven-3.6.0" # replace n.n.n with appropriate version
export M3=$M3_HOME/bin
export PATH=$M3:$PATH
## set node version
export PATH="/usr/local/opt/node@8/bin:$PATH"
## pic-tools
source /Projects/pic-tools/scripts/*.env
Responder1
Basta substituir a instância zsh que você está executando por uma nova:
exec zsh
exec
é umshell embutidocomando com o objetivo de (ver zshbuiltins
página de manual):
Substitua o shell atual pelo comando em vez de bifurcar.
Por que está ficando mais lento... minha primeira especulação seria que você redefina PATH no seu zshrc
, talvez com um diretório em uma unidade bastante lenta. Assim, depois de cada vez que você obtém seu arquivo zshrc
, seu caminho de pesquisa fica cada vez mais longo. E cada vez zsh
é preciso refazer mais e mais diretórios...
Por favor leia meuresponder a outroquestionar como melhorar essa situação.