代码之家  ›  专栏  ›  技术社区  ›  iconoclast

如何(从脚本)向zsh命令历史记录中添加内容?

  •  3
  • iconoclast  · 技术社区  · 14 年前

    我希望能够查看我的命令历史,了解我发出各种命令的上下文——换句话说,“我在哪个目录中?”我可以通过各种方法来实现这一点,但所有这些方法(我可以想到)都需要操纵zsh历史来添加(例如)一条注释行,结果是$(pwd)。(我可以创建名为cd&pushd&popd等的函数,也可以使用zsh的prexec()函数和它的periodic()函数,最多每x秒添加一行注释,就在我发出命令之前,或者可能有其他方法。)

    问题是,我不想直接操作历史文件并绕过shell的历史机制,但我无法找到一种方法(例如,使用fc命令)在不在命令行上实际键入内容的情况下向历史添加内容。我怎么能这样做?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Community miroxlav    7 年前

    你可以使用 print -s 命令(见) man zshbuiltins )添加任何您想添加到历史记录中的内容。还有一个钩子函数可以创建 zshaddhistory (见 man zshmisc )可以在创建历史内容时对其进行操作。

    my Bash history logging functions 为了灵感。