完全禁用Zsh历史记录

时间:2016-10-20 16:44:37

标签: zsh

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

我当前的.zshrc

unsetopt hist_append
unsetopt hist_expand
HISTFILE=
HISTSIZE=SAVEHIST=0

目前我有一个历史记录缓冲区,但我希望历史记录为零。

21-10-2016更新:

我添加了

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

摆脱我使用的历史功能(esc + p与我的骨干硬连接 - 很难忘记)。

3 个答案:

答案 0 :(得分:0)

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

您可能会更好地使用bindkey更改键绑定,以便永远不会发生历史记录功能。例如,bindkey -r "^[[A"用于我的向上箭头键(请注意,我实际上键入了一个插入符号和两个括号,而不是转义键)。

答案 1 :(得分:0)

尝试配置ZSH设置以运行postexec函数来清空/删除.zhistory文件。这是一个hacky解决方法,但应该可以工作。

答案 2 :(得分:0)

我在 out Any? 中使用以下条目:

.zshrc

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

因此,别名 alias disablehistory="function zshaddhistory() { return 1 }" 只会定义始终返回 1(不保存)的函数。

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

alias enablehistory="unset -f zshaddhistory" 只是取消以前别名设置的函数。

如果您想完全禁用历史记录,请在您的 enablehistory

中永久定义 zshaddhistory