vscode中多个终端应通过分栏而非新建窗口实现:按ctrl+shift+`打开终端,再按ctrl+shift+5分栏,各终端独立进程、可命名、需手动终止后台任务。

VSCode里开多个终端窗口,不是靠“新建窗口”,而是靠“分栏”
VSCode的终端本质是集成在编辑器底部面板里的,所谓“多个独立终端窗口”,实际指的是在同一VSCode实例中并排或上下并列运行多个终端实例——它们彼此不共享进程、不互相影响。很多人误点菜单栏的 File → New Window,结果开了两个VSCode主窗口,每个里面还只有一条终端,既浪费资源又没解决真需求。
正确做法是复用同一个VSCode窗口,通过终端面板内部的分栏功能实现隔离:
- 按
Ctrl+Shift+`(Windows/Linux)或Cmd+Shift+`(macOS)唤出第一个终端 - 再按一次
Ctrl+Shift+`,会自动在下方新增一个终端标签页;但这是「标签页」,不是「独立窗口」 - 要真正并排显示两个终端:右键任意终端标签页 → 选择
Split Terminal(或直接按Ctrl+Shift+5),就会左右分栏,各自运行独立 shell 进程 - 支持无限嵌套分栏:对任一分栏终端再次执行
Split Terminal,可上下/左右继续拆
每个分栏终端默认启动独立 shell,但要注意 shell 类型和工作目录
VSCode不会自动为你切换 shell 类型或重置路径。比如你在左栏启动了 bash,右栏默认也是 bash,但它的当前工作目录(pwd)取决于你触发分栏时焦点所在的终端——不是继承父终端路径,也不是固定为打开VSCode时的目录。
常见陷阱:
- 右键某个终端选
Split Terminal,新终端可能沿用原终端的cwd,但如果原终端刚执行过cd,新终端就从那个路径开始,容易误判 - 想让每个分栏都从项目根目录启动?不能依赖自动继承,得手动配置:在
settings.json中设"terminal.integrated.defaultProfile.linux"(或对应平台键)并配合"terminal.integrated.cwd",但该设置只影响「新创建的终端」,不影响已存在的分栏 - 跨平台注意:Windows下默认是
Powershell,分栏后仍是Powershell;如需cmd或Git Bash,得先在终端右上角下拉菜单选好,再分栏,否则新栏还是原shell
关闭分栏终端时,进程不会自动终止,得手动确认
点击某个分栏终端右上角的 ×,只是隐藏该面板,并不 kill 底层 shell 进程。如果你在其中运行了 npm run dev 或 python app.py,关掉面板后服务仍在后台跑着,端口被占、CPU持续占用,但你完全感知不到。
安全操作习惯:
- 关闭前先看一眼终端标题栏文字:它会显示当前运行的命令(如
npm run dev),而不是简单写个bash - 想彻底停掉:进该终端,按
Ctrl+C中断前台进程;如果用了&后台启动,得用jobs+kill %1或直接pkill -f "your-command" - 懒人技巧:终端右键菜单有
Kill Terminal,比点 × 更彻底,会直接结束进程组
终端分栏太多时,标签页管理容易混乱
VSCode最多允许4个分栏(2×2网格),但每个分栏里还能切多个标签页(Ctrl+Shift+T 新建标签)。一旦混用,你会看到:左上角一个 bash 标签,右上角一个 Python 标签,左下角又一个 bash 标签……根本分不清哪个在哪个分栏里跑什么。
实用建议:
- 给终端命名:右键终端标签 →
Rename Terminal,输入frontend、backend、db-migrate这类语义名,比默认的bash管用十倍 - 避免在单一分栏里堆太多标签页——分栏本意就是物理隔离,标签页适合临时切不同项目,不是替代分栏的方案
- 快捷键记牢:
Ctrl+PageUp/Ctrl+PageDown切换同分栏内标签页;Ctrl+Shift+PageUp/Ctrl+Shift+PageDown切换分栏本身
分栏逻辑看着简单,但真正用顺需要理解它和 shell 进程、工作目录、信号传递之间的耦合关系。多数问题不出在“怎么开”,而出在“关不干净”和“路径搞错”。











