当前位置: 首页 > ops >正文

VS Code 终端完全指南

1. 简介

Visual Studio Code (VS Code) 集成终端是一个功能完备的命令行界面,直接内置于编辑器中,让开发者无需离开 VS Code 即可执行命令、管理文件和运行程序。它支持多种 shell(如 Bash、PowerShell、Zsh),并提供丰富的自定义选项和高级功能,极大提升了开发效率。

image.png

2. 快速入门

打开终端

有多种方式可以打开 VS Code 终端:

  • 菜单:Terminal > New Terminal 或 View > Terminal
  • 快捷键:`Ctrl+`` (反引号)
  • 命令面板Ctrl+Shift+P 输入 View: Toggle Terminal
  • 资源管理器:右键文件夹选择 Open in Integrated Terminal

基本操作

打开终端后,你可以立即执行常见的 shell 命令:

# 列出当前目录文件
ls# 创建新目录
mkdir my-project# 切换目录
cd my-project# 创建文件
touch index.js

image.png

交互输出

VS Code 终端提供智能链接检测功能:

  • 文件路径:按住 Ctrl/Cmd 点击文件路径可直接在编辑器中打开
  • URL:点击网址会在浏览器中打开
  • 行号信息:如 app.js:15 会直接跳转到文件的对应行

image.png

3. 终端管理

多终端与标签

VS Code 支持同时打开多个终端,并通过标签进行管理:

  • 新建终端Ctrl+Shift+`` 或点击终端面板中的 +` 图标
  • 重命名终端:右键标签选择 “重命名”
  • 切换终端:点击标签或使用 Ctrl+PageUp/PageDown

image.png

分屏与分组

你可以将终端拆分为多个窗格,实现多任务并行:

  • 拆分终端:右键标签选择 “拆分” 或使用 Ctrl+\
  • 切换窗格
    • macOS: Alt+Cmd+Left/Right
    • Windows/Linux: Alt+Ctrl+Left/Right
  • 调整大小:拖动窗格分隔线调整比例

image.png

终端位置

终端可以灵活调整位置:

  • 面板模式:默认在编辑器底部
  • 编辑器标签:拖动终端标签到编辑器区域,成为独立标签
  • 浮动窗口:将终端拖出 VS Code 窗口,成为独立窗口

4. 配置文件 (Profiles)

终端配置文件允许你自定义不同的 shell 环境,适用于不同项目或任务需求。

访问配置文件

  1. 打开终端下拉菜单(终端面板右上角的 ▼ 图标)
  2. 选择 Select Default Profile
  3. 点击对应 shell 右侧的设置图标进行配置

image.png

自定义配置文件

settings.json 中可以手动配置终端 profiles:

{"terminal.integrated.profiles.windows": {"PowerShell - NoProfile": {"source": "PowerShell","args": ["-NoProfile"]},"Custom Bash": {"path": "C:\\Program Files\\Git\\bin\\bash.exe","args": ["--login"]}},"terminal.integrated.defaultProfile.windows": "Custom Bash"
}

环境变量

可以为特定 profile 设置环境变量:

{"terminal.integrated.profiles.windows": {"Dev Environment": {"path": "cmd.exe","env": {"NODE_ENV": "development","PATH": "${env:PATH};${workspaceFolder}\\node_modules\\.bin"}}}
}

5. Shell 集成

VS Code 终端与 shell 深度集成,提供增强功能:

命令检测与导航

  • 命令历史:使用 Ctrl+Up/Down 在命令历史中导航
  • 命令重运行:点击命令左侧的圆形图标可重新运行该命令
  • 输出分组:每个命令的输出被清晰分组,便于查看

image.png

特殊序列支持

VS Code 支持 Final Term 和 OSC 633 序列,实现高级功能:

  • 命令开始 / 结束标记
  • 工作目录跟踪
  • 命令状态指示

这些功能通常自动启用,无需额外配置。

6. 外观自定义

字体与颜色

自定义终端的视觉样式:

{"terminal.integrated.fontFamily": "'Fira Code', 'Hack NF', monospace","terminal.integrated.fontSize": 14,"terminal.integrated.lineHeight": 1.2,"terminal.integrated.cursorStyle": "line","terminal.integrated.cursorWidth": 2,"terminal.integrated.cursorBlinking": true
}

主题与颜色方案

通过工作区颜色自定义修改终端颜色:

{"workbench.colorCustomizations": {"terminal.background": "#1a1a1a","terminal.foreground": "#e0e0e0","terminalCursor.foreground": "#ffcc00"}
}

image.png

高级视觉设置

  • 字体连字:启用后可将 => 显示为箭头符号
    "terminal.integrated.fontLigatures": true
    
  • GPU 加速:默认启用,提升渲染性能
    "terminal.integrated.gpuAcceleration": "auto"
    

7. 高级功能

键盘快捷键配置

自定义终端快捷键,提升操作效率:

// keybindings.json
[{"key": "ctrl+shift+t","command": "workbench.action.terminal.newWithProfile","args": { "profileName": "Python" }},{"key": "ctrl+k","command": "workbench.action.terminal.clear","when": "terminalFocus"}
]

持久会话

终端会话可以在 VS Code 重启后保留:

{"terminal.integrated.enablePersistentSessions": true,"terminal.integrated.persistentSessionReviveProcess": true
}

远程开发支持

在远程开发场景中,终端会自动连接到远程环境:

  • 本地终端:在远程窗口中,使用 Terminal: Create New Integrated Terminal (Local) 打开本地终端
  • 输入延迟优化:启用本地回显减少远程连接延迟
    "terminal.integrated.localEchoEnabled": true
    

8. 常见问题与解决方案

问题解决方案
终端中文显示乱码确保系统 locale 设置正确,并在 VS Code 中配置:
"terminal.integrated.detectLocale": "on"
无法使用某些快捷键调整快捷键跳过 shell 的设置:
"terminal.integrated.commandsToSkipShell": ["-workbench.action.quickOpen"]
终端启动缓慢优化 shell 配置文件,或创建无启动脚本的 profile:
"terminal.integrated.profiles.windows": { "Fast Bash": { "path": "bash.exe", "args": ["--noprofile", "--norc"] } }
粘贴多行文本警告禁用多行粘贴警告:
"terminal.integrated.enableMultiLinePasteWarning": false

总结

VS Code 集成终端不仅仅是一个命令行工具,更是一个功能丰富的开发环境中心。通过灵活的配置和强大的功能,它可以适应各种开发 workflow,显著提升开发效率。无论是前端、后端还是 DevOps 工作流,掌握 VS Code 终端的使用技巧都将使你的开发体验更加流畅。

希望本指南能帮助你充分利用 VS Code 终端的全部功能!如有其他问题,欢迎查阅 VS Code 官方文档。

http://www.xdnf.cn/news/18167.html

相关文章:

  • 机器学习中的「损失函数」:模型优化的核心标尺
  • 2025.8.19总结
  • Qt猜数字游戏项目开发教程 - 从零开始构建趣味小游戏
  • BCT8937A Class T Audio Amplifier
  • GPFS不同存储方式的优劣
  • 【数据结构】使用队列解决二叉树问题
  • 4.pod生命周期和健康检测以及使用kubectl管理Kubernetes容器平台
  • B站 韩顺平 笔记 (Day 23)
  • 力扣(电话号码的字母组合)
  • 理解JavaScript中的函数赋值和调用
  • 0.开篇简介
  • 添加右键菜单项以管理员权限打开 CMD
  • CMake进阶: CMake Modules---简化CMake配置的利器
  • 决策树(2)
  • 火山引擎,燃起了Agent的星星之火
  • Python数据分析:DataFrame,reindex,重建索引。有时候整型变浮点型,有时候又不变?
  • Unity进阶--C#补充知识点--【C#各版本的新功能新语法】C#1~4与C#5
  • 基于多级缓存架构的Redis集群与Caffeine本地缓存实战经验分享
  • BEV:隐式相机视角转换-----BEVFormer
  • JVM 面试精选 20 题(续)
  • 面试经验分享-某电影厂
  • 黎阳之光:以数字之力,筑牢流域防洪“智慧防线”
  • 图像采集卡与工业相机:机器视觉“双剑合璧”的效能解析
  • 【ASP.NET Core】ASP.NET Core中间件解析
  • 如何安全删除GitHub中的敏感文件?git-filter-repo操作全解析
  • PowerBI VS FineBI VS QuickBI实现帕累托分析
  • [WiFi]RealTek RF MP Tool操作说明(RTL8192ES)
  • 编排之神--Kubernetes中的认证授权详解
  • PyTorch数据加载利器:torch.utils.data 详解与实践
  • RNN深层困境:残差无效,Transformer为何能深层?