【问题标题】:Restore integrated terminal session with last Working Directory on Git Bash使用 Git Bash 上的最后一个工作目录恢复集成终端会话
【发布时间】:2022-11-11 19:06:56
【问题描述】:
通常当我们退出终端并重新打开它时,它会恢复我们的终端和选项卡,这是一个很好的功能,但它也可以恢复我们最后的 cwd 吗?我认为它应该,但我不能让它在我的终端上工作。
会话不保存我的最后一个工作目录
它说session contents restored
之前的目录是.../shop/shop-next,但恢复后它只是.../shop
我希望它在恢复后和以前一样(.../shop/shop-next)
相关设置是:
关于设置“持久会话恢复过程”,它说它应该恢复CWD取决于它是否被终端支持
我不知道 git bash 是否支持此功能,所以这是我的问题:
- 有没有办法完成它?(不使用扩大)
- 哪些终端/配置文件/bash 支持此功能。
【问题讨论】:
标签:
visual-studio-code
terminal
git-bash
【解决方案1】:
(对不起,这可能不适合你,因为你使用标签,但可能会给你带来一些改进的想法。)
如果我们谈论的是适用于 Windows 的 Git Bash(或任何类似于 MINGW64),我在 .bashrc 文件中使用了以下代码:
# == Use changed/default directory on load ==
# and remember changed directory
DEFAULT_DIR=~
cd() { builtin cd ${@} && keep_last_dir; }
keep_last_dir() { pwd > ~/.bashrc.last_dir; }
if [ -z "${BASHRC_INIT}" ]; then
export BASHRC_INIT=1
readonly BASHRC_INIT
change_dir=${DEFAULT_DIR}
if [[ ${HOME} != $(pwd) ]] && [[ -f ~/.bashrc.last_dir ]]; then
change_dir=$(cat ~/.bashrc.last_dir)
fi
# go to default directory
[ -d ${change_dir} ] && cd ${change_dir}
fi
# == == == == == == == == == == == == == == ==
您可以更改此行:DEFAULT_DIR=~
在第一次打开时,它总是会将您返回到最后一个目录位置。