完全禁用 Zsh 历史记录

Disable Zsh history completely

我想完全禁用 Zsh 历史记录(向上箭头)和 zle 历史记录搜索(即 esc+p)。我怎样才能做到这一点?

我目前的 .zshrc:

unsetopt hist_append
unsetopt hist_expand
HISTFILE=
HISTSIZE=SAVEHIST=0

目前我的历史缓冲区为 1,但我希望历史缓冲区为 0。

21-10-2016 更新:

我已经添加了

bindkey -r "^[p"
bindkey -r "^Xr"
bindkey -r "^Xs"
bindkey -r "^[[A"
bindkey -r "^[[B"
bindkey -r "^[n"

摆脱我使用的历史记录功能(esc+p 与我的 backbone 紧密相连 - 很难忘记)。

我在 zsh 手册页中没有看到任何完全禁用历史记录的内容。即使设置 HISTSIZE=0 似乎也会将 HISTSIZE 的值重置为 1。

您可能会更幸运地使用 bindkey 更改键绑定,这样历史功能就永远不会出现。例如,bindkey -r "^[[A" 代表我的向上箭头键(请注意,我实际上键入了一个插入符号和两个括号,而不是转义键)。

尝试将您的 ZSH 设置配置为 运行 后执行函数,empties/deletes 您的 .zhistory 文件。这是一个 hacky 解决方法,但应该可以工作。

我在 .zshrc 中使用了以下条目:

alias disablehistory="function zshaddhistory() {  return 1 }"

如果定义了函数zshaddhistory,可以控制是否保存历史行。

因此,别名 disablehistory 将只定义始终 returns 1(不保存)的函数。

alias disablehistory="function zshaddhistory() {  return 1 }"
alias enablehistory="unset -f zshaddhistory"

enablehistory 只是取消设置由以前的别名设置的功能。

如果您想完全禁用历史记录,请在 .zshrc

中永久定义 zshaddhistory