如何配置Rio Terminal使新标签页打开在相同目录?
配置Rio终端新标签页继承当前目录的方法
方法一:开启use-fork(最简单方案)
Rio默认开启use-fork选项,开启后新标签页会直接复制当前标签页的Shell进程,自动继承当前工作目录。如果你的配置文件手动关闭了该选项,修改config.toml:
use-fork = true
开启后working-dir配置会被忽略,新标签页直接沿用当前标签页的目录,无需额外设置。
方法二:禁用use-fork时的替代方案
若因特殊需求必须关闭use-fork,可以通过Shell配置记录当前目录,让新标签页读取:
- 在Zsh中自动记录当前目录
编辑~/.zshrc,添加以下代码:
# 每次切换目录时,将当前路径写入临时文件 chpwd() { echo "$PWD" > ~/.rio_current_dir }
保存后重启Shell,之后每次切换目录,该文件都会自动更新为当前路径。
- 修改Rio配置读取目录文件
编辑config.toml,将shell配置改为:
shell = ["zsh", "-c", 'cd "$(cat ~/.rio_current_dir 2>/dev/null || echo "$HOME")"; exec zsh']
这样每次打开新标签页时,Zsh会先切换到记录的目录(文件不存在则回退到主目录),再启动交互式Shell。
针对你问题的直接解答
- 如何获取上一个标签页的目录:要么通过
use-fork让Rio自动继承当前目录,要么用Shell钩子把当前目录写入共享文件,新标签页读取该文件。 - 能否为toml文件分配环境变量:目前Rio的
config.toml不支持直接解析环境变量,无法直接写working-dir = "$PWD"这类格式。 - Zsh中检测上一个标签页的当前目录:没有直接“检测”的方法,只能通过主动记录当前目录到共享文件,让新标签页读取该文件来实现。
内容的提问来源于stack exchange,提问作者Nisanio
相关产品推荐
相关产品推荐

