gpt4 book ai didi

shell - 如何将当前工作目录保存到 Zsh 历史记录?

转载 作者:行者123 更新时间:2023-12-04 17:28:20 26 4
gpt4 key购买 nike

我想达到与这里要求的相同 Saving current directory to bash history但是在 Zsh shell 中。我以前没有做过任何 Zsh 诡计,但到目前为止我有:

function precmd {
hpwd=$history[$((HISTCMD-1))]
if [[ $hpwd == "cd" ]]; then
cwd=$OLDPWD
else
cwd=$PWD
fi
hpwd="${hpwd% ### *} ### $cwd"
echo "$hpwd" >>~/.hist_log
}
现在我将使用目录名称注释的命令保存到日志文件中。这对我来说很好用。只是认为可能有一种方法可以在历史缓冲区本身中进行相同的替换。

最佳答案

function _-accept-line() {
[[ -z "${BUFFER" ]] || [[ "${BUFFER}" =~ "### ${(q)PWD}\$" ]] || BUFFER="${BUFFER} ### ${PWD}"
zle .accept-line
}
zle -N accept-line _-accept-line

会加 ### ${PWD}到您的命令行。不是您可以使用的最佳解决方案,但它有效。

UPD:根据@Dennis Williamson 的评论回答:
function zshaddhistory() {
print -sr "${1%%$'\n'} ### ${PWD}"
fc -p
}

关于shell - 如何将当前工作目录保存到 Zsh 历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com