terminus插件支持通过init_cmd配置启动欢迎语,最可靠方式是在用户设置中添加含echo命令的init_cmd数组;系统shell配置(如~/.zshrc)需配合"shell": "login"生效;terminal插件已失效,html欢迎页不可行。

Terminus 启动后自动执行 echo 命令
Terminus 支持在 shell 启动时运行自定义命令,这是最直接、兼容性最好的方式。它不依赖 GUI 渲染,纯文本输出,稳定可靠。操作要点:
- 打开
Preferences → Package Settings → Terminus → Settings - 在用户设置中添加
"shell_configs"或修改已有配置,例如:
{
"shell_configs": [
{
"name": "Login Shell",
"cmd": ["login"],
"env": {},
"default": true,
"init_cmd": ["echo '? 欢迎回来,正在加载环境...'; echo ''"]
}
]
}
注意:init_cmd 是 Terminus 特有字段,只在新会话启动时执行一次;多条命令用数组写,每条独立执行;echo '' 可加空行提升可读性;如果用的是 Windows Git Bash,cmd 要写成 ["C:\Program Files\Git\bin\bash.exe", "-l"],且 init_cmd 中的换行需用 $'\n' 风格(但建议避免,改用多个 echo 更稳)。
在 ~/.zshrc 或 ~/.bashrc 里加提示
如果你用的是系统 shell(如 macOS 的 zsh、Linux 的 bash),Terminus 启动login 模式时会自动 source 对应的 profile 文件。欢迎语放在这里,所有基于该 shell 的终端(包括 iTerm、VSCode 终端)都会生效。
常见错误现象:改了 ~/.zshrc 但 Terminus 里没显示——大概率是没配 "shell": "login",导致 shell 没走 login 流程,profile 被跳过。
实操建议:
- 确认 Terminus 设置中有
"shell": "login"(或等效配置) - 在
~/.zshrc底部追加:echo -e "\033[1;32m? Sublime Terminal 已就绪\033[0m" - 别用
figlet或复杂 ANSI 动画——部分终端仿真器不支持,可能卡住或乱码 - 避免调用外部命令(如
date、git)做动态内容,首次启动慢或失败会导致欢迎语不显示
别碰 Terminal 插件——它根本不支持欢迎语
Terminal 插件(非 Terminus)已在 Sublime Text 4 中彻底失效,强行启用会导致菜单灰显、快捷键失灵、控制台报ImportError: No module named 'sublime_api'。它没有配置入口、没有 init hook、不维护 session,连基础命令执行都不可靠,更不可能支持欢迎语。
你看到的“Terminal 插件设置里有 welcome 字段”是 ST3 时代的残留文档,ST4 的 API 已移除对应接口。不要尝试 patch、不要找旧版 fork、不要改 Default.sublime-settings —— 这些操作只会让 Terminus 也跟着异常。
HTML 欢迎页?Terminus 不支持 Webview 替换
Custom Welcome Page 这类扩展只对 VSCode 有效,Sublime Text 没有 Webview 容器机制,也没有插件能劫持终端面板渲染层。试图用view.run_command("terminus_open", {...}) + HTML 注入,结果只会是空白面板或 JSON 解析错误。
根本原因:Terminus 是原生进程桥接,所有输出走 PTY,不是 DOM;它的 UI 层由 Sublime 自己绘制,插件无权注入 HTML 或 JS。所谓“自定义欢迎页”,在 Sublime 生态里不存在技术路径。
真正容易被忽略的一点:Terminus 的 init_cmd 在分屏(split pane)或复用会话(reconnect)时不会重复执行。如果你希望每次新开 tab 都看到欢迎语,必须关掉会话复用:"enable_persistence": false,否则第二次打开就是冷冰冰的 prompt。











