23

我正在使用oh-my-zsh并且有一个功能真的让我很烦。每个控制台都共享历史记录。我想禁用它,经过审查后我发现

.oh-my-zsh/lib/history.zsh

有这个:

setopt share_history # 共享命令历史数据

我应该如何禁用它?我的意思是,什么是正确的方法。它是一个库而不是插件,如果我编辑该文件,我将不会获得它的更新。

4

3 回答 3

42

这个问题很老,但无论如何:

正如您可以setopt用来设置选项一样,您可以unsetopt用来取消设置它们。

只需添加

unsetopt share_history

采购后$ZSH/oh-my-zsh.sh

(是的,这真的很烦人;))

于 2014-07-22T00:05:45.137 回答
1

我的意思是,什么是正确的方法。它是一个库而不是插件,如果我编辑该文件,我将不会获得它的更新。

公认的答案是最简单的方法,但值得一提的是,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
于 2019-10-08T23:47:31.603 回答
0

如果你想完全覆盖 oh-my-zsh 的内部库,有一个 wiki 条目:https ://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-internals

基本上你会放一个空文件$ZSH_CUSTOM/lib/history.zsh来禁用该库。

于 2021-07-06T22:41:57.943 回答