如何让Fish Shell始终从用户主目录(~)启动而非上次路径?
解决Fish Shell新标签页继承上次路径的问题
步骤1:检查终端模拟器设置
绝大多数终端模拟器(如iTerm2、GNOME Terminal、Konsole等)都自带控制新标签页启动路径的选项。打开终端的设置面板,找到“新标签页启动位置”相关设置,确保选择“用户主目录”或“~”,而非“继承当前窗口路径”。
步骤2:修改Fish配置强制切换到主目录
如果终端设置无异常,直接在Fish主配置文件中添加强制切换目录的命令:
- 打开配置文件:
nano ~/.config/fish/config.fish - 在文件开头或合适位置添加一行:
cd ~ - 保存退出后,重启终端验证效果。
步骤3:排查dotfiles中的路径恢复逻辑
由于你使用的是自定义dotfiles,可能存在保存并恢复上次会话路径的脚本:
- 检查
~/.config/fish/conf.d/目录下的所有脚本,寻找是否有类似保存$PWD到文件、启动时读取并cd过去的代码,比如:# 示例:可能存在的路径恢复代码 if test -f ~/.last_dir cd (cat ~/.last_dir) end - 找到后注释或删除这部分代码,重启终端即可。
步骤4:清除Fish的通用路径变量
Fish的fish_last_pwd通用变量可能会影响启动路径,执行以下命令删除该变量:
set -e fish_last_pwd
之后重启终端,新标签页应该会默认从主目录启动。
内容的提问来源于stack exchange,提问作者Kevin Renskers
相关产品推荐
相关产品推荐

