在使用 远程 Shell、WSL,以及 GNU Screen / tmux 等多路复用工具时,主机终端通常无法可靠获取 Shell 的当前工作目录。这会导致诸如“复制当前路径”、基于当前目录打开文件管理器或 SFTP 面板等功能失效或不准确。
Tabby 通过支持 OSC 1337 协议(最初由 iTerm 提出),允许 Shell 主动向终端报告其实时工作目录,从而解决这一问题。
启用该协议后,可实现以下功能:
- “复制当前路径” 的上下文菜单 / 标签页菜单功能可正常使用
- SFTP 面板 可直接在 Shell 当前目录下打开
- 与 WinSCP 等工具实现类似的目录感知体验
要启用此功能,只需将指定配置添加到远程 Shell 的配置文件中(如 .bashrc、.zshrc),并重启 Shell 或重新登录即可生效。
一、Bash:
编辑 bash_profile:
vim ~/.bash_profile
末尾追加如下内容:
export PS1="$PS1\[\e]1337;CurrentDir="'$(pwd)\a\]'
立即生效:
source ~/.bash_profile
二、ZSH:
编辑 zshrc:
precmd () { echo -n "\x1b]1337;CurrentDir=$(pwd)\x07" }
三、Fish
编辑 config.fish:
function __tabby_working_directory_reporting --on-event fish_prompt echo -en "\e]1337;CurrentDir=$PWD\x7" end