AmyangXYZ / zhiyin-zsh-theme

Zhiyin dance in zsh prompt
MIT License
67 stars 4 forks source link

通过设置preexec和precmd钩子,来实现执行命令前停止动画,执行命令后恢复动画 #2

Closed lyyQwQ closed 1 year ago

lyyQwQ commented 1 year ago

我在实际使用过程中,不仅仅是vim会受到动画影响,而且还包括mysql的前两个字母会被动画替代,ssh远程时的开头部分会被动画替代,复制粘贴多行命令的时候,最后一行命令的开头会被动画替代。 我的系统相关信息:

OS: Kubuntu 22.04.2 LTS x86_64
Kernel: 5.19.0-41-generic
Shell: zsh 5.8.1 
DE: Plasma 5.24.7
Terminal: terminator

我现在是通过设置preexec和precmd钩子,来实现执行命令前停止动画,执行命令后恢复动画,我测试我常用的一些命令,目前多行命令粘贴的时候开头还是会被动画替换,不过不影响命令的执行 代码由GPT4提供(

# zhiyin theme option 
psanimate 0.08

# 设置 zsh 的 preexec 和 precmd 钩子
autoload -Uz add-zsh-hook

# 在执行命令之前停止动画
preexec() {
  psanimate_stop
}

# 在命令完成后重新启动动画
precmd() {
  psanimate 0.08
}

add-zsh-hook -Uz preexec preexec
add-zsh-hook -Uz precmd precmd
AmyangXYZ commented 1 year ago

你能提个pull request吗?这段代码可以直接放进zhiyin.zsh-theme里,用户不再需要手动修改.zshrc了

lyyQwQ commented 1 year ago

你能提个pull request吗?这段代码可以直接放进zhiyin.zsh-theme里,用户不再需要手动修改.zshrc了

彳亍 其实还有一个问题,就是我选中文本想要复制的时候,会受到它影响,大部分时候没有办法选中,关掉动画以后就能选了,我暂时没啥好办法,所以我加了一个命令可以手动开关动画= =