Warp 是一款基于 Rust 开发的现代终端,内建 AI 并支持许多编辑器特性(自动补全等)。近期在使用 Warp 时发现在通过 ssh 链接跳板机后,无法正常实现其特性。原因是由于 SSH Wrapper 已在跳转服务器上启用,因此 Warp 将任何进一步的 ssh 连接视为subshell。
在查阅 github 后发现解决方案:
根据不同的 shell 类型,修改配置文件即可使 Warp 正常识别 subshell。
# For zsh subshells, add to ~/.zshrc.
printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "zsh"}}\x9c'
# For bash subshells, add to ~/.bashrc or ~/.bash_profile.
printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "bash"}}\x9c'
# For fish subshells, add to ~/.config/fish/config.fish.
if status is-interactive
printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "fish"}}\x9c'
end
如果不知道 shell 类型,可透过下述命令查看:
echo $0
完成修改后重新连接即可看到效果。