我正在使用oh-my-zsh并且有一个功能真的让我很烦。每个控制台都共享历史记录。我想禁用它,经过审查后我发现
.oh-my-zsh/lib/history.zsh
有这个:
setopt share_history # 共享命令历史数据
我应该如何禁用它?我的意思是,什么是正确的方法。它是一个库而不是插件,如果我编辑该文件,我将不会获得它的更新。
我正在使用oh-my-zsh并且有一个功能真的让我很烦。每个控制台都共享历史记录。我想禁用它,经过审查后我发现
.oh-my-zsh/lib/history.zsh
有这个:
setopt share_history # 共享命令历史数据
我应该如何禁用它?我的意思是,什么是正确的方法。它是一个库而不是插件,如果我编辑该文件,我将不会获得它的更新。
这个问题很老,但无论如何:
正如您可以setopt
用来设置选项一样,您可以unsetopt
用来取消设置它们。
只需添加
unsetopt share_history
采购后$ZSH/oh-my-zsh.sh
(是的,这真的很烦人;))
我的意思是,什么是正确的方法。它是一个库而不是插件,如果我编辑该文件,我将不会获得它的更新。
公认的答案是最简单的方法,但值得一提的是,oh-my-zsh 允许您通过放入任何文件或插件来覆盖它$ZSH_CUSTOM
- 甚至是 lib 中的东西。如果你想做的不仅仅是unsetopt share_history
你可以运行这个:
# $ZSH_CUSTOM should already be automatically set to $ZSH/custom
# but you can customize the location in your ~.zshrc.
# ie: export ZSH_CUSTOM=~/.zsh_custom
# set up lib in omz custom area
mkdir -p $ZSH_CUSTOM/lib
# start off with omz version of the file
cp $ZSH/lib/history.zsh $ZSH_CUSTOM/lib/history.zsh
# edit that file and make it what you want
${EDITOR:-vim} $ZSH_CUSTOM/lib/history.zsh
如果你想完全覆盖 oh-my-zsh 的内部库,有一个 wiki 条目:https ://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-internals
基本上你会放一个空文件$ZSH_CUSTOM/lib/history.zsh
来禁用该库。