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

时间:2010-05-12 05:22:57

标签: shell history zsh

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

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

1 个答案:

答案 0 :(得分:3)

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

请参阅my Bash history logging functions获取灵感。