清除Oh-My-Zsh的历史

Ste*_*Kin 37 macos zsh oh-my-zsh

我想在zsh历史记录中删除一个条目.我正在使用oh-my-zsh.

哦-my-zsh使用fc而不是没有-d命令的历史 - 知道bug.我试过寻找fc但不存在的.如何查找历史文件的位置并删除条目?

Amr*_*ana 53

你正在查找错误的文件.看看~/.zsh_history不是〜/ .zhistory要查看您的历史记录保存在哪个文件中

echo $HISTFILE
Run Code Online (Sandbox Code Playgroud)

rm $HISTFILE
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您必须在`rm $ HISTFILE`之后注销并返回以查看更改.但这并没有回答这个问题.它不是要删除整个历史记录(`history -c`),而是删除一个特定的行(`history -d [offset]`). (5认同)

Don*_*rek 23

在unix系统上清除zsh历史记录.

 echo "" > ~/.zsh_history & exec $SHELL -l
Run Code Online (Sandbox Code Playgroud)


Web*_*pic 13

清除Zsh历史(oh-my-zsh)


  • 关闭,退出并重新打开iTerm
  • nano .zsh_history
  • 使用arrow keys导航到您要删除的历史记录部分.
  • 使用delete密钥删除所有不需要的历史记录日志.
  • 一旦你删除你想删除所有内容,请control XExit.
  • 系统将提示您进行Save更改.如果您对更改感到满意,请点击shift Y.
  • 系统会询问您要保存更改的位置.选择control T保存to File.
  • 导航到您.zsh_profilearrow keys,然后按Enter键.
  • 退出并重启iTerm.
  • 键入history以确认删除.
  • 您已成功清除Zsh历史记录.

  • 还可以使用 vi 来查找 /thing。我不知道这是否也适用于 Nano。 (2认同)

Far*_*had 7

您可以使用这些命令打开 ZSH 命令的历史记录(当您位于 home 或 ~ 目录中时)并假设您知道如何使用vimnano

nano ~/.zsh_history
vim ~/.zsh_history
open ~/.zsh_history
Run Code Online (Sandbox Code Playgroud)

然后您可以手动删除所需的行并保存文件。

如果您的 zsh_history 列表太长,为了方便起见,请使用以下命令:

  1. Vim通过将其添加到以下内容来启用环境中的鼠标移动和行编号.vimrc
  2. 打开.vimrc
 vim ~/.vimrc
Run Code Online (Sandbox Code Playgroud)
  1. 添加这些.vimrc并保存(按 ESC,输入“:”,写入 wq,然后按 Enter):
:set number
set mouse=a
Run Code Online (Sandbox Code Playgroud)
  1. zsh_history使用鼠标轻松滚动Vim
  2. 如果您想在Vim使用中启用复制,请按住键盘上的 Shift 键。


Mar*_*ert 6

此功能将从 Zsh 历史记录中删除您想要的任何一行,不问任何问题:

# Accepts one history line number as argument.
# Alternatively, you can do `dc -1` to remove the last line.
dc () {
  # Prevent the specified history line from being saved.
  local HISTORY_IGNORE="${(b)$(fc -ln $1 $1)}"

  # Write out history to file, excluding lines that match `$HISTORY_IGNORE`.
  fc -W

  # Dispose of the current history and read the new history from file.
  fc -p $HISTFILE $HISTSIZE $SAVEHIST

  # TA-DA!
  print -r "Deleted '$HISTORY_IGNORE' from history."
}
Run Code Online (Sandbox Code Playgroud)

如果您还想阻止所有dc命令写入历史记录,请在~/.zshrc文件中添加以下内容:

zshaddhistory() {
 [[ $1 != 'dc '* ]]
}
Run Code Online (Sandbox Code Playgroud)

或者,要获得全面的、开箱即用的解决方案,请使用我的Zsh Hist 插件


Ful*_*der 6

    \n
  1. 在 zsh 命令行中输入并运行,open\xc2\xa0~/.zsh_history(这将在我的 Mac 上打开 TextEdit。)
  2. \n
  3. 删除文件中的任何行
  4. \n
  5. 保存并关闭文件
  6. \n
  7. 完全关闭/退出 Zsh 并重新启动 Zsh(这一步很重要!)
  8. \n
  9. 现在,打开 zsh,历史命令不会显示您删除的行
  10. \n
\n


小智 5

  1. 打开 ~/.zshrc
  2. 添加以下行

    alias clear_history='echo "" > ~/.zsh_history & exec $SHELL -l'
    
    Run Code Online (Sandbox Code Playgroud)
  3. 保存并关闭文件

  4. 关闭控制台,或直接键入结果以查看结果,但这将在旧控制台中zsh
    打开另一个zsh shell。
  5. 现在您可以清除控制台输入 clear_history

前面所有的答案都是好的,这只是为我工作的解决方案。


oka*_*das 5

TL; DR

cat /dev/null > ~/.zsh_history