我很高兴使用zsh
一段时间了,我对我的历史设置非常满意,它们是:
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
Run Code Online (Sandbox Code Playgroud)
但是经常发生我需要在某些特定目录中使用特定命令的情况。例如,当我在时~/my_project
我通常会调用make target1 && ./run1
,但是当我在时~/second_project
我通常需要make target2 && cat foobar | ./run2
.
即:不同的目录,但相似的命令。
所以,我通常会cd ~/my_project
输入make
然后在历史中向后搜索,直到找到我需要的东西。但是如果碰巧我在 . 工作second_project
,在搜索历史时我会发现一些我不需要的命令。
所以,我的问题是:zsh 是否存在插件/设置/某些东西,以便在历史记录中搜索时,首先显示在当前目录中调用的命令?
理想情况下,所有其他匹配的历史命令都将出现在这些命令之后,可选择指定最大优先级元素数。
我会尝试自己写这样的东西,但我仍然不知道如何编写自定义zsh插件,如何处理历史记录等等。