加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 将当前目录保存到zsh历史记录

发布时间:2020-12-15 17:03:38 所属栏目:安全 来源:网络整理
导读:我希望实现与此处 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 hpw
我希望实现与此处 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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读