我希望能够查看我的命令历史记录,并了解发出各种命令所依据的上下文,换句话说,“我在哪个目录中?”我可以通过多种方法来实现此目的,但是所有这些(我能想到的)都需要操纵zsh历史记录,以添加(例如)带有$(pwd)结果的注释行。 (我可以创建名为cd&pushd&popd等的函数,或者我可以使用zsh的preexec()函数以及它的periodic()函数最多每X秒添加一条注释行,就在我发出命令之前,或者其他方式。)
问题是,我不想直接操作历史记录文件并绕过Shell的历史记录机制,但是我无法找出一种方法(例如,使用fc命令)在不实际键入历史记录的情况下将其添加到历史记录中在命令行上。我该怎么办?
最佳答案
您可以使用print -s
命令(请参阅man zshbuiltins
)将所需的任何内容添加到历史记录中。您还可以创建一个名为zshaddhistory
的 Hook 函数(请参见man zshmisc
),该函数可以在创建历史内容时对其进行操作。
请参阅my Bash history logging functions以获取灵感。
关于shell - 如何(从脚本)向zsh命令历史记录添加内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2816225/