VSCode终端支持在同一面板内水平或垂直分割创建多个独立终端:按Ctrl+Shift+5(Win/Linux)或Cmd+Shift+5(macOS)水平分割,Ctrl+\(Win/Linux)或Cmd+\(macOS)垂直分割,焦点需手动切换,路径继承需设置terminal.integrated.splitCwd为"inherit"。

怎么在 VSCode 里同时开多个终端并分屏?
VSCode 的终端默认是单个标签页,但你可以快速创建多个终端实例,并用分割方式并排查看。关键不是“开多个窗口”,而是“在同一个终端面板里分屏”——VSCode 终端面板支持水平/垂直分割,所有终端共享同一面板区域,不弹新窗口。
操作核心是快捷键 + 面板内右键菜单,不需要装插件或改设置。
-
新建终端:
Ctrl+Shift+`(Windows/Linux)或Cmd+Shift+`(macOS),每次按都会新增一个终端标签页 -
水平分割当前终端:聚焦在某个终端后,按
Ctrl+Shift+5(Win/Linux)或Cmd+Shift+5(macOS) -
垂直分割当前终端:聚焦后按
Ctrl+\(Win/Linux)或Cmd+\(macOS) - 分割后,每个区域独立运行 shell,可分别执行
npm run dev、python server.py等不同任务
为什么分割后的终端不能自由拖动到其他位置?
VSCode 的终端分割是「面板内布局」,不是独立窗口。所有分割区域都绑定在底部终端面板里,不能拖出、不能跨显示器、也不能变成浮动窗——这是设计限制,不是 bug。
常见误解是想“像系统终端那样自由排列”,但 VSCode 终端的定位就是轻量嵌入式工具,不是替代 iTerm 或 Windows Terminal。
- 如果真需要多个独立终端窗口,得靠系统级终端(如打开多个 Windows Terminal 标签页),再配合 VSCode 的
Terminal: Focus Terminal命令跳转 - 分割终端之间共享工作目录(除非手动
cd),但 shell 环境变量、进程状态完全隔离 - 关闭一个分割区域不会影响其他区域;关掉整个终端面板才会终止所有子终端进程(除非配置了
terminal.integrated.automationShell等保活逻辑)
终端分割后光标卡住 / 输入没反应?
这是最常被忽略的交互陷阱:VSCode 终端分割后,焦点只落在其中一个区域,其余区域处于“失焦”状态,看起来像卡死,其实是没获得输入权。
- 用
Ctrl+Tab(Win/Linux)或Cmd+Tab(macOS)在分割区域间循环切换焦点 - 鼠标直接点击任意分割区域的空白处,也能立即激活它
- 右键终端区域会弹出上下文菜单,其中
Focus Next Pane和Focus Previous Pane是精准切换的快捷方式 - 如果用了 zsh/fish 等高级 shell,偶尔会因主题渲染问题导致光标位置错乱——此时按
Ctrl+L清屏通常能恢复
如何让新终端自动继承上一个的工作目录?
默认情况下,新终端(包括分割出来的)会从 VSCode 打开的根目录启动,而不是复制当前终端的 pwd。这点和系统终端行为不同,容易导致路径错误。
解决办法是开启内置配置项:terminal.integrated.inheritEnv 不管用,真正起作用的是:
- 设置
terminal.integrated.cwd为"${fileDirname}"只影响首次打开,不解决分割场景 - 必须启用
terminal.integrated.splitCwd,设为"inherit"(默认是"workspaceRoot") - 修改后需重启终端面板(关掉再
Ctrl+Shift+`),新分割终端才会继承父终端当前路径 - 注意:该配置对通过命令面板
Terminal: Create New Terminal新建的标签页也生效,但不影响已存在的非分割终端


















