VS Code / Lingma AI IDE Java 开发攻略手册
一、IDE介绍
VSCode 崛起后,Java 开发生态迅速成熟,尤其是 AI IDE 的出现,使得 VSCode 成为 Java 开发的主流选择之一。
目前市面上大部分 AI IDE(Cursor、Lingma、Antigravity、TRAE 等)均基于 VSCode 开源框架构建。
优势:
-
插件生态丰富
-
配置灵活
-
轻量、跨平台
-
AI 能力强(尤其是 Lingma / Cursor)
-
与 Git、Maven、Spring Boot 深度集成
下表为主流 AI IDE 对比:
| 名称 | 出品 | 亮点 | 缺点 | 模型 |
|---|---|---|---|---|
| Lingma AI IDE | 阿里 | 与通义 Qianwen 系列紧密集成、企业级 AI 编程体验 | 市场资源较新,资料较少 | 通义 Qianwen(Qwen3 等)为主模型 |
| Cursor | Anysphere | 深度理解整个代码库、支持多任务 Agent & Composer 模式 | 高阶功能付费、有用户反馈稳定性/bug 争议 | 自研 Tab 模型 + 支持 GPT、Claude 等多模型 |
| Antigravity IDE | 真正的 Agent-First 开发、多 Agent 协作、浏览器/终端自动执行 | 仍处于预览期,部分功能体验不完善 | 以 Gemini 3 Pro 为核心,多模型切换支持 | |
| CodeBuddy IDE | 腾讯 | 中文深度本地化、支持多 IDE 集成、设计→代码转换 | 功能依赖邀请码/模型生态成熟度待提升 | DeepSeek-V3 模型驱动智能补全/生成 |
| TRAE | 字节跳动 | 中文优化、免费策略、AI 任务执行 & 聊天式协作 | 有遥测/隐私争议,生态成熟度有待提高 | 多大模型接入(GPT-4、Claude Sonnet、DeepSeek 系列等) |
| Qoder | Bright Zenith | 代理式任务模式(Quest)、RepoWiki 自动文档 | 市场新、模型细节不完全公开、稳定性评价不一 | 支持 Claude、GPT、Gemini 等前沿模型 |
| Theia IDE | Eclipse 基金会 | 开源可扩展,支持 VS Code 生态插件 | AI 功能仍在发展中,需要配置 | 可接入多种 LLM |
本手册以 Lingma AI IDE(阿里出品,集成通义千问 Qwen) 为例,但配置适用于标准 VS Code。
二、基础配置
开发java工程,必配的组件要有:Git Bash,Java jdk, Maven,下面将介绍如何安装配置这些组件。
2.1 启用【开发者模式】
默认情况下,Windows 创建软链接需要管理员权限。
开启windows系统 开发者模式 后,可避免每次都"以管理员身份运行"。
操作路径:
-
Win + I→ 打开 设置 -
系统 → 开发者选项
-
打开 开发者模式(Developer Mode)
开启后,普通权限下的 Git Bash 也可正常执行
ln -s
2.2 安装Git Bash
Git Bash 提供类 Linux / Unix 的命令行能力,是本方案执行脚本的基础环境。
-
官网地址:https://git-scm.com/
-
安装目录建议直接放在D盘根目录,例如:
D:/Git -
关键组件 :安装时确保勾选 "Git Bash Here" 和 "Use Git from Git Bash only"(避免与 Windows CMD 产生路径冲突)。
-
安装完成后,确保可以正常打开 Git Bash
2.3 配置java
在日常开发中,往往同时维护多个项目:
-
老项目仍停留在 JDK 8
-
新项目已升级到 JDK 17 / 21 / 25
而 Windows 系统层面,JAVA_HOME 只能指向一个 JDK,频繁手动切换不仅低效,也极易引发环境混乱。
本文以 Windows 11 为例,在已安装 JDK 1.8 / 17 / 21 / 25 的前提下,构建一套 一次配置,终身一键切换 的 JDK 管理方案。
-
规范 java 目录结构
建议在 非系统盘(如 D 盘) 统一管理 JDK:
D:\jdk目录规划说明:
-
版本目录:每个 JDK 一个独立目录
-
虚拟入口 :
default用作软链接入口
⚠️ 注意:
-
如果你之前手动创建过
D:\jdk\default文件夹,请先删除 -
该目录将由脚本自动创建为 软链接
-
-
java环境变量配置
路径 :
Win + I→ 系统 → 高级系统设置 → 环境变量变量名 变量值 类型 JAVA_HOMED:\jdk\default用户/系统变量 CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;系统变量 Path追加%JAVA_HOME%\bin系统变量(置顶) ⚠️ 重要:
JAVA_HOME必须指向default目录,而非具体版本目录。CLASSPATH(兼容 JDK 8,JDK 9+ 实际已不再依赖)将
%JAVA_HOME%\bin添加到 Path 列表,并上移至第一行(防止系统自带路径干扰)。 -
JDK 安装说明
下载渠道
类型 推荐源 说明 官方归档 Oracle JDK Archive 需 Oracle 账号,版本最全 国内镜像 INJDK 导航站 免登录,速度快,含多厂商发行版 安装要求
强烈建议使用压缩包版(zip)而非安装程序(exe):
-
下载对应版本的
.zip压缩包 -
解压至
D:\jdk\目录
形成如下目录结构:
textD:\jdk\jdk1.8.0_471 D:\jdk\jdk-17.0.17 D:\jdk\jdk-21.0.9 D:\jdk\jdk-25.0.1 -
-
配置 JDK 快捷切换命令
编辑
.bashrc.bashrc位于当前用户主目录,用于定义终端启动时加载的命令与别名。例如 windows 账号为 vincent,则这个在
C:/Users/vincent/.bashrc操作步骤:
shellcd ~ vi .bashrc或:
shellnotepad .bashrcalias 配置
shell# 允许 Git Bash 创建原生 Windows 软链接 export MSYS="winsymlinks:nativestrict" # 默认软链接入口 export JDK_DEFAULT="/d/jdk/default" # JDK 路径 export JDK8_PATH="/d/jdk/jdk1.8.0_471" export JDK17_PATH="/d/jdk/jdk-17.0.17" export JDK21_PATH="/d/jdk/jdk-21.0.9" export JDK25_PATH="/d/jdk/jdk-25.0.1" # 切换命令封装(在Git Bash执行) alias jdk8="rm $JDK_DEFAULT && ln -s $JDK8_PATH $JDK_DEFAULT && java -version" alias jdk17="rm $JDK_DEFAULT && ln -s $JDK17_PATH $JDK_DEFAULT && java -version" alias jdk21="rm $JDK_DEFAULT && ln -s $JDK21_PATH $JDK_DEFAULT && java -version" alias jdk25="rm $JDK_DEFAULT && ln -s $JDK25_PATH $JDK_DEFAULT && java -version"保存后执行:
shellsource ~/.bashrc -
jdk快捷切换验证
打开 Git Bash 终端,依次参照下方操作,显示出对应jdk版本号即表示配置ok
shelljdk8java version "1.8.0_471"
Java™ SE Runtime Environment (build 1.8.0_471-b09)
Java HotSpot™ 64-Bit Server VM (build 25.471-b09, mixed mode)
shelljdk17java version "17.0.17" 2025-10-21 LTS
Java™ SE Runtime Environment (build 17.0.17+8-LTS-360)
Java HotSpot™ 64-Bit Server VM (build 17.0.17+8-LTS-360, mixed mode, sharing)
shelljdk21java version "21.0.9" 2025-10-21 LTS
Java™ SE Runtime Environment (build 21.0.9+7-LTS-338)
Java HotSpot™ 64-Bit Server VM (build 21.0.9+7-LTS-338, mixed mode, sharing)
shelljdk25java version "25.0.1" 2025-10-21 LTS
Java™ SE Runtime Environment (build 25.0.1+8-LTS-27)
Java HotSpot™ 64-Bit Server VM (build 25.0.1+8-LTS-27, mixed mode, sharing)
2.4 配置maven
这里以 apache maven 3.6.3 为版本,解压部署至D盘根目录下:
D:\apache-maven-3.6.3
-
maven环境变量配置
路径 :
Win + I→ 系统 → 高级系统设置 → 环境变量变量名 变量值 类型 MAVEN_HOMED:\apache-maven-3.6.3用户/系统变量 Path追加%MAVEN_HOME%\bin系统变量(置顶) -
验证maven
打开 Git Bash 终端窗口,输入查看版本命令:
shellmvn -vApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\apache-maven-3.6.3
Java version: 1.8.0_471, vendor: Oracle Corporation, runtime: D:\jdk\default\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
三、安装IDE
访问官网 Lingma AI IDE ,安装下载,再注册进行登录(可以使用支付宝账号)。
【必装插件】
- streetsidesoftware.code-spell-checker
- gruntfuggly.todo-tree
- usernamehw.errorlens
- eamodio.gitlens
- donjayamanne.githistory
- vscjava.vscode-java-pack
- vmware.vscode-boot-dev-pack
- yangbaopan.vscode-java-ibatisx
- redhat.fabric8-analytics
- misterj.vue-volar-extention-pack
- ecmel.vscode-html-css
- redhat.vscode-yaml
- redhat.vscode-xml
3.1 插件介绍
3.1.1 通用效率/辅助工具
-
streetsidesoftware.code-spell-checker
Code Spell Checker: 代码与注释中的英文拼写检查,避免一些命名拼写错误。 -
gruntfuggly.todo-tree
Todo Tree: 扫描 TODO / FIXME / NOTE 注释并以树形结构展示 -
usernamehw.errorlens
Error Lens: 将编译/诊断错误直接显示在代码行内 -
shardulm94.trailing-spaces
Trailing Spaces: 高亮显示行尾多余空格 -
yatki.vscode-surround
Surround: 快捷键包裹代码(括号、引号、标签等) -
vscode-icons-team.vscode-icons
vscode-icons: 文件/目录图标增强,提高项目结构可读性
3.1.2 Git / 版本管理
-
eamodio.gitlens
GitLens --- Git supercharged: Git增强,行级blame、提交历史、作者信息、代码追溯 -
donjayamanne.githistory
Git History: Git 提交历史可视化查看(文件/分支历史)
3.1.3 Java
-
vscjava.vscode-java-pack
Extension Pack for Java: Java 开发插件包,包含:-
redhat.java
Language Support for Java™ by Red Hat: Java 语言服务器(语法分析、补全、重构、诊断核心) -
vscjava.vscode-java-debug
Debugger for Java: Java 应用调试支持(断点、变量、调用栈) -
vscjava.vscode-java-testJUnit / TestNG 测试运行与调试
-
vscjava.vscode-maven
Test Runner for Java: Maven 项目支持(生命周期、依赖、目标执行) -
vscjava.vscode-gradle
Gradle for Java: Gradle 项目支持(任务执行、依赖查看) -
vscjava.vscode-java-dependency
Project Manager for Java: Java 项目依赖关系与类路径可视化
-
-
vmware.vscode-boot-dev-pack
Spring Boot Extension Pack: Springboot开发插件包,包含:-
vmware.vscode-spring-boot
Spring Boot Tools: Spring Boot 开发支持(配置提示、诊断、导航) -
vscjava.vscode-spring-boot-dashboard
Spring Boot Dashboard: Spring Boot 应用启动与管理面板 -
vscjava.vscode-spring-initializr
Spring Initializr Java Support: 使用 Spring Initializr 创建新项目
-
-
yangbaopan.vscode-java-ibatisx
Super Mybatis: MyBatis / iBatis XML 映射文件辅助(跳转、补全) -
redhat.fabric8-analytics
Red Hat Dependency Analytics: 依赖安全与许可证分析插件
3.1.4 前端
-
misterj.vue-volar-extention-pack
Vue Extension Box: Vue前端开发插件包,包含:-
vue.volar
Vue (Official): Vue 3 官方语言服务(TypeScript、模板类型推断、诊断) -
christian-kohler.path-intellisense
Path Intellisense: 文件路径自动补全。 -
formulahendry.auto-close-tag
Auto Close Tag: 自动闭合标签。 -
formulahendry.auto-rename-tag
Auto Rename Tag: 同步修改成对标签。 -
ms-vscode.vscode-typescript-tslint-plugin
TSLint: TypeScript 项目中的 TSLint 规则检查(已不推荐安装)。 -
syler.sass-indented
Sass (.sass only): Sass(缩进语法)支持。 -
sibiraj-s.vscode-scss-formatter
SCSS Formatter: SCSS 格式化。 -
esbenp.prettier-vscode
Prettier - Code formatter: 主格式化工具。
-
-
ecmel.vscode-html-css
HTML CSS Support: HTML 中 class / id 对应 CSS 的自动补全
3.1.5 Markdown / 文档
-
yzhang.markdown-all-in-one
Markdown All in One: Markdown 编辑增强(快捷键、目录、预览) -
davidanson.vscode-markdownlint
markdownlint: Markdown 语法与风格规范校验 -
shd101wyy.markdown-preview-enhanced
Markdown Preview Enhanced: 高级 Markdown 预览(图表、公式、流程图)
3.1.6 其他语言
-
redhat.vscode-yaml
YAML: YAML 语言支持(Kubernetes / CI / 配置文件) -
redhat.vscode-xml
XML: XML 语言支持(校验、补全、格式化) -
eriklynd.json-tools
JSON Tools: JSON 格式化、压缩、排序等工具 -
quicktype.quicktype
Paste JSON as Code: 根据 JSON 结构生成 TypeScript / Java 等对象 -
mechatroner.rainbow-csv
Rainbow CSV: CSV 文件按列着色显示,便于阅读
四、配置IDE
核心配置:
在Lingma AI IDE中,全局配置会对每一个工作区和项目进行生效。
打开Lingma AI IDE后,按下 Ctrl + Shift + P 输入 Preferences: Open User Settings (JSON),添加以下内容:
json
{
/* =================================================================
核心编辑器与工作台配置 (Workbench & Editor)
包含:字体、编码、文件关联、标尺、颜色微调等
================================================================= */
// 文件图标主题
"workbench.iconTheme": "vscode-icons",
// 显示缩略图
"editor.minimap.enabled": true,
// 编辑器字体大小
"editor.fontSize": 13,
// 启用链接编辑(修改标签头自动修改标签尾)
"editor.linkedEditing": true,
// 自动猜测文件编码
"files.autoGuessEncoding": true,
// 默认换行符 (LF)
"files.eol": "\n",
// 禁用保存时自动格式化
"editor.formatOnSave": false,
// 禁用键入时自动格式化
"editor.formatOnType": false,
// 禁用粘贴时自动格式化
"editor.formatOnPaste": false,
// 仅保留基础括号对齐,防止查找替换时大幅度缩进抖动
"editor.autoIndent": "brackets",
// 禁用自动检测缩进,强制使用本项目定义的 tabSize
"editor.detectIndentation": false,
// 缩进空格数
"editor.tabSize": 4,
// 使用空格代替 Tab
"editor.insertSpaces": true,
// 保存时"自动导包"
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},
// 文件编码统一 UTF-8
"files.encoding": "utf8",
/* =================================================================
终端与 Shell 环境 (Terminal)
包含:默认Shell、多JDK环境变量、自定义终端Profile
================================================================= */
// Windows 下默认终端使用 Git Bash
"terminal.integrated.defaultProfile.windows": "Git Bash",
// 始终显示终端标签页
"terminal.integrated.tabs.hideCondition": "never",
// 增加终端滚动缓冲区
"terminal.integrated.scrollback": 100000,
// 自动化任务使用的终端 Profile
"terminal.integrated.automationProfile.windows": {
"path": "cmd"
},
// 终端通用环境变量(默认 JDK 路径)
"terminal.integrated.env.windows": {
"JAVA_HOME": "D:\\jdk\\default",
"PATH": "D:\\jdk\\default\\bin;${env:PATH}"
},
// 定义各个终端 Profile 详情
"terminal.integrated.profiles.windows": {
"Git Bash": {
"path": "D:\\Git\\bin\\bash.exe",
"args": ["--login", "-i"]
},
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
// --- 特定 Java 版本终端 ---
"JavaSE-1.8 LTS": {
"overrideName": true,
"env": {
"PATH": "D:\\jdk\\jdk1.8.0_471\\bin;${env:PATH}",
"JAVA_HOME": "D:\\jdk\\jdk1.8.0_471"
},
"path": "cmd"
},
"JavaSE-17 LTS": {
"overrideName": true,
"env": {
"PATH": "D:\\jdk\\jdk-17.0.17\\bin;${env:PATH}",
"JAVA_HOME": "D:\\jdk\\jdk-17.0.17"
},
"path": "cmd"
},
"JavaSE-21 LTS": {
"overrideName": true,
"env": {
"PATH": "D:\\jdk\\jdk-21.0.9\\bin;${env:PATH}",
"JAVA_TOOL_OPTIONS": "-Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8",
"JAVA_HOME": "D:\\jdk\\jdk-21.0.9"
},
"path": "cmd",
"args": ["/k", "chcp", "65001"] // 强制 UTF-8 编码
},
"JavaSE-25 LTS": {
"overrideName": true,
"env": {
"PATH": "D:\\jdk\\jdk-25.0.1\\bin;${env:PATH}",
"JAVA_TOOL_OPTIONS": "-Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8",
"JAVA_HOME": "D:\\jdk\\jdk-25.0.1"
},
"path": "cmd",
"args": ["/k", "chcp", "65001"]
}
},
/* =================================================================
Java 开发环境配置 (JDK / Maven / Gradle)
包含:运行时、编译设置、调试器、构建工具路径
================================================================= */
// Java 运行时列表配置
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "D:\\jdk\\jdk1.8.0_471"
},
{
"name": "JavaSE-17",
"path": "D:\\jdk\\jdk-17.0.17"
},
{
"name": "JavaSE-21",
"path": "D:\\jdk\\jdk-21.0.9"
},
{
"name": "JavaSE-25",
"path": "D:\\jdk\\jdk-25.0.1",
"default": true // 默认 JDK
}
],
// Java 测试运行器配置
"java.test.config": {
"vmArgs": ["-Dstdout.encoding=UTF-8", "-Dstderr.encoding=UTF-8"]
},
// 启动时不自动检测已安装的 JDK
// "java.configuration.detectJdksAtStart": false,
// 自动进行空指针分析
"java.compile.nullAnalysis.mode": "automatic",
// 自动更新构建配置
"java.configuration.updateBuildConfiguration": "automatic",
// Java 调试:自动热代码替换
"java.debug.settings.hotCodeReplace": "auto",
// 依赖包显示方式:分层级显示
"java.dependency.packagePresentation": "hierarchical",
// 开启自动构建
"java.autobuild.enabled": true,
// 组织导入时,同一包下超过99个类即转换为通配符(*)导入
"java.sources.organizeImports.staticStarThreshold": 99,
// Maven 自动更新快照版本
"java.maven.updateSnapshots": true,
// Gradle 主目录路径
"java.import.gradle.home": "D:\\gradle\\default",
// Gradle 使用的 JDK
"java.import.gradle.java.home": "D:\\jdk\\default",
// ============================================================
// 构建、调试与终端设置
// ============================================================
// Maven 视图层级化显示
"maven.view": "hierarchical",
// 指定 Maven 本地安装路径 (建议手动指定,避免环境混乱)
// 如果已配环境变量填 mvn,否则填全路径("D:\\apache-maven-3.6.3\\bin\\mvn")
"maven.executable.path": "D:\\apache-maven-3.6.3\\bin\\mvn",
// 常用快捷指令
"maven.terminal.favorites": [
{
"alias": "快速打包(强制刷新)",
"command": "clean install -U",
"debug": false
},
{
"alias": "调试模式打包",
"command": "clean install -U -X",
"debug": false
}
],
// Maven 终端使用的自定义环境变量
"maven.terminal.customEnv": [
{
"environmentVariable": "JAVA_HOME",
"value": "D:\\jdk\\default"
}
],
/* =================================================================
调试体验优化 (Debug Configuration)
================================================================= */
// 调试工具栏的位置:
// "floating": 悬浮在顶部中央(默认,可拖动)
// "docked": 固定在侧边栏调试面板顶部(不遮挡代码)
// "hidden": 隐藏工具栏
"debug.toolBarLocation": "floating",
// 调试控制台字体大小
"debug.console.fontSize": 13,
// 调试日志不自动换行
"debug.console.wordWrap": false,
// 每次开始调试时自动打开控制台
"debug.internalConsoleOptions": "openOnSessionStart",
// 调试结束后不强制跳回文件管理器,保持当前视图
"debug.openExplorerOnEnd": false,
// 在底部状态栏也显示调试状态和按钮
"debug.showInStatusBar": "always",
"debug.openDebug": "neverOpen",
// 只有报错时才强行提醒
"debug.onTaskErrors": "showErrors",
/* =================================================================
Git & GitLens 版本控制
包含:Git基础行为、GitLens 增强显示(Blame/History)
================================================================= */
// 不打开父级 Git 仓库
"git.openRepositoryInParentFolders": "never",
// 忽略未安装 Git 的警告
"git.ignoreMissingGitWarning": true,
// 自动拉取远程变更
"git.autofetch": true,
// GitLens 时间格式
"gitlens.defaultDateFormat": "YYYY-MM-DD HH:mm:ss",
// 时间显示样式:绝对时间
"gitlens.defaultDateStyle": "absolute",
// 作者显示样式:显示姓名
"gitlens.defaultAuthorStyle": "name",
// 时间来源:按提交时间 (authored)
"gitlens.defaultDateSource": "authored",
// 启用当前行 Blame 信息
"gitlens.currentLine.enabled": true,
// 行内 Blame 显示在行尾
"gitlens.currentLine.location": "endOfLine",
// 行内 Blame 格式:作者, 时间 · 信息
"gitlens.currentLine.format": "${author}, ${date} · ${message}",
// 非编辑状态也显示行内 Blame
"gitlens.currentLine.onlyWhileEditing": false,
// 鼠标悬停时启用详细信息
"gitlens.currentLine.hover.enabled": true,
// 文件级 Blame 切换模式
"gitlens.blame.toggle.mode": "file",
// Blame 视图紧凑模式
"gitlens.blame.compact": true,
// 提交记录文件列表布局
"gitlens.views.commits.files.layout": "list",
// 显示分支比较
"gitlens.views.commits.showBranchComparison": "branch",
// 允许文件历史追踪重命名
"gitlens.advanced.fileHistoryFollowsRenames": true,
// 比较时忽略空白字符变更
"gitlens.ignoreWhitespace": true,
/* =================================================================
语言特定配置 (Language Specific)
包含:json,Vue, SCSS, Bat 的格式化与Emmet
================================================================= */
"[java]": {
"editor.formatOnSave": false // 针对 Java 语言显式关闭自动行为
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode" // jsonc语言,使用Prettier - Code formatter插件格式化
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode" // json语言,使用Prettier - Code formatter插件格式化
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode" // Vue语言,使用Prettier - Code formatter插件格式化
},
"[scss]": {
"editor.defaultFormatter": "sibiraj-s.vscode-scss-formatter" // scss语言,使用vscode-scss-formatter插件格式化
},
"[bat]": {
"files.eol": "\r\n" // 批处理文件强制使用 CRLF 换行
},
// ============================================================
// XML 与 MyBatis 深度定制 (保护 SQL 逻辑)
// ============================================================
// 必须开启,否则无法手动触发格式化
"xml.format.enabled": true,
// 防止长 SQL 被强制折行
"xml.format.maxLineWidth": 999,
// 禁止属性强制换行
"xml.format.splitAttributes": false,
// 保持属性原有的换行布局
"xml.format.wrapAttributes": "preserve",
// 保持 CDATA 内部不换行
"xml.format.joinCDATALines": true,
"xml.format.spaceBeforeEmptyCloseTag": true,
// 即使手动触发格式化,也会跳过以下标签内容,双重保护 SQL
"xml.format.contentUnformatted": [
"mapper",
"select",
"insert",
"update",
"delete",
"sql",
"script"
],
// 针对 XML 语言显式关闭自动行为
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml",
"editor.formatOnSave": false
},
// 彻底关闭标签联动,防止大规模查找替换时触发非预期的标签变更
// 禁用自动闭合标签
"xml.editor.autoClosingTags": false,
/* =================================================================
扩展插件与杂项 (Extensions & Miscellaneous)
包含:拼写检查、空格处理、LiveServer、安全信任
================================================================= */
// 为特定语言禁用拼写检查
"[sql]": {
"cSpell.enabled": false
},
"[tsql]": {
"cSpell.enabled": false
},
// 拼写检查提示级别:提示 (Hint)
"cSpell.diagnosticLevel": "Hint",
// 允许单词中包含数字、下划线、大小写混合
"cSpell.allowCompoundWords": true,
// 忽略全大写(常用于常量、SQL 关键字)
"cSpell.ignoreCase": true,
// 尾随空格高亮背景色
"trailing-spaces.backgroundColor": "rgba(255,0,0,0.1)",
// 尾随空格检测不包含空行
"trailing-spaces.includeEmptyLines": false,
// Live Server 不显示信息弹窗
"liveServer.settings.donotShowInfoMsg": true,
// 开启 RedHat 扩展的遥测
"redhat.telemetry.enabled": true,
// 工作区信任设置:默认打开不信任的文件
"security.workspace.trust.untrustedFiles": "open",
// VS Code 的微软认证改为浏览器网页认证
"microsoft-authentication.implementation": "msal-no-broker",
/* =================================================================
Lingma AI IDE 特有配置 (AI Assistant Settings)
包含:语言偏好、AI 补全、聊天安全、自动更新与代理设置
================================================================= */
"app": {
// --- 通用设置 ---
"configGeneralDisplayLanguage": "zh-cn", // 插件界面显示语言:简体中文
"configGeneralAiResponseLanguage": "zh-cn", // AI 回答问题的语言:简体中文
"configGeneralImprovementPlan": "agree", // 是否同意加入用户体验改进计划
"configGeneralImportSettings": "VS Code", // 设置导入来源:从标准 VS Code 导入
// --- 代码补全 (Completion) ---
"configCompletionEnableNES": true, // 是否启用新型代码补全引擎 (NES)
"configCompletionDisabledLanguages": [], // 禁用补全功能的编程语言列表(目前为空)
"configCompletionTriggerInComment": true, // 在注释中是否依然触发 AI 代码补全
"configCompletionAutoImport": true, // AI 补全代码时是否自动导入相关的类/包
// --- AI 聊天/对话 (Chat) ---
"configChatWebToolsMode": "Ask every time", // AI 使用联网搜索工具的模式:每次都询问我
"configChatAskModeUseTools": false, // 在提问模式下是否默认允许使用外部工具
"configChatEditFileTool": false, // 是否允许 AI 直接通过对话修改本地文件
"configChatTerminalRunMode": "askEveryTime", // AI 执行终端命令前的触发模式:每次询问
"configChatCommandDenyList": "rm,mv,sudo,wget,curl,chown", // 终端命令黑名单:禁止 AI 执行这些高风险命令
"configChatCommandAllowlist": "", // 终端命令白名单(留空表示按默认规则)
"configChatAutoRunMcpTools": true, // 是否自动运行 MCP (Model Context Protocol) 协议工具
"configChatMethodQuickOperation": false, // 是否开启对话框内的方法级快速操作按钮
"configChatShowSelectionToolbar": true, // 选中代码时是否显示 AI 功能悬浮条
// --- 进阶功能 ---
"configQuestEnable": true, // 是否启用任务/探索模式 (Quest)
"configMemoryAutoGenerate": true, // 是否允许 AI 自动生成/记录长期记忆(记住你的编码习惯)
"configAdvancedAutoUpdate": true, // 插件是否自动检查并安装更新
"configAdvancedProxyMode": "system", // 插件的网络代理模式:使用系统代理
"configAdvancedProxyURL": "" // 自定义代理服务器地址
}
}
🎯注意
- Git Bash安装目录指定正确;
- jdk安装目录要指定正确,默认jdk,各版本jdk都要指定正确;
- maven目录要指定正确;
五、导入工程
5.1 导入工程
5.1 导入Maven项目
- 打开项目
- 点击菜单栏
File→Open Folder... - 选择包含
pom.xml文件的项目根目录 - 点击
Select Folder
- 点击菜单栏
- 等待项目加载
- 首次打开时,IDE会自动检测并加载Maven项目
- 会弹出提示询问是否导入项目,点击
Yes
- Maven依赖下载
- 在底部状态栏可以看到Maven正在下载依赖
- 或者在侧边栏的Maven插件中查看进度
5.2 从Git仓库克隆
- 克隆仓库
- 点击菜单栏
View→Command Palette(或按Ctrl+Shift+P) - 输入
Git: Clone - 输入仓库URL
- 选择存储位置
- 点击菜单栏
- 打开克隆的项目
- 克隆完成后,选择
Open Repository in New Window - 或者关闭当前窗口,重新打开项目
- 克隆完成后,选择
5.3 导入父项目
- 打开父项目根目录(包含父
pom.xml) - IDE会自动识别多模块结构
- 在"Java项目"视图中可以看到所有子模块
5.4 单独导入子模块
- 打开特定子模块目录
- 右键点击
pom.xml→添加到工作区 - 或在
pom.xml上右键选择Maven → 导入项目
5.2 创建工程
5.2.1 创建Maven项目
方法1 - 使用命令面板:
Ctrl + Shift + P→Java: Create Java Project- 选择
Maven - 选择
maven-archetype-quickstart(简单Java项目)或maven-archetype-webapp(Web项目) - 输入Group Id、Artifact Id、Version
- 选择项目保存位置
方法2 - 使用终端:
shell
# 创建项目目录
mkdir my-project && cd my-project
# 使用Maven原型创建
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.4 \
-DinteractiveMode=false
# 用IDE打开
code my-app
5.2.2 创建Spring Boot项目
使用Spring Initializr:
Ctrl + Shift + P→Spring Initializr: Generate a Maven Project- 选择语言:
Java - 选择Spring Boot版本(推荐稳定版)
- 输入Group Id和Artifact Id
- 选择打包方式:
Jar - 选择Java版本
- 选择依赖(可多选):
Spring Web- Web应用开发Spring Data JPA- 数据持久化MySQL Driver- MySQL数据库Lombok- 代码简化Spring Boot DevTools- 热部署
- 选择项目保存位置
5.4 项目导入常见问题
5.4.1 Maven依赖下载失败
问题现象 :pom.xml 报红,依赖无法解析
解决方案:
-
检查网络连接和Maven镜像配置
-
强制更新依赖:
- 命令面板:
Maven: Execute Commands→clean install -U - 或终端:
mvn clean install -U
- 命令面板:
-
清除本地仓库缓存:
bash# 删除本地仓库中的错误文件 rm -rf D:/maven-repo/**/*.lastUpdated
5.4.2 JDK版本不匹配
问题现象 :编译报错 invalid source release
解决方案:
-
检查项目
pom.xml中的Java版本:xml<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> -
使用Git Bash切换对应JDK版本:
bashjdk8 # 或 jdk17, jdk21 -
在IDE中重新加载项目:
Ctrl + Shift + P→Java: Clean Workspace
5.4.3 编码问题
问题现象:中文显示乱码或编译报错
解决方案:
-
确保所有编码设置为UTF-8:
json{ "files.encoding": "utf8", "java.jdt.ls.vmargs": "-Dfile.encoding=UTF-8" } -
在
pom.xml中添加编码配置:xml<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
六、配置工程
在 VS Code / Lingma AI IDE 下开发 Java 工程 时,工作空间级别的 .vscode 目录是"项目级 IDE 规范"的核心 。
它的目标不是"个人偏好",而是:保证团队成员打开工程即可一致运行、调试、构建。
text
.vscode/
├── extensions.json ← 自动提示安装
├── settings.json ← 统一编码、格式化、保存动作
├── launch.json ← 调试/运行模板
└── java-formatter.xml ← 团队代码风格(推荐Jetbrains IDEA格式化风格)
└── .gitignore ← git版本控制忽略配置文件
-
extensions.json 配置:
json{ // ========================= // VS Code / Lingma IDE // 推荐插件列表(团队级) // // 说明: // - 新成员打开工程时会收到"推荐安装插件"提示 // - 这里只放【必须 / 强烈建议】插件 // - 不要放纯个人习惯类插件 // ========================= "recommendations": [ // ===== 通用效率 / 代码质量 ===== // 英文拼写检查(变量名 / 注释) "streetsidesoftware.code-spell-checker", // 扫描TODO/FIXME/NOTE 注释并以树形结构展示 "gruntfuggly.todo-tree", // 行内错误高亮显示(比 Problems 面板更直观) "usernamehw.errorlens", // ===== Git / 版本管理 ===== // Git 增强:行级 blame、提交历史、作者信息 "eamodio.gitlens", // Git 历史可视化(文件 / 分支 / 提交) "donjayamanne.githistory", // ===== Java 基础能力(核心) ===== // Java 插件合集(语言服务 / 调试 / 测试 / Maven / Gradle 等) "vscjava.vscode-java-pack", // Java 语言服务器(语法、补全、重构、诊断核心) // ⚠️ 已包含在 java-pack 中,但单独列出方便认知 "redhat.java", // Java 调试支持(断点 / 变量 / 调用栈) "vscjava.vscode-java-debug", // JUnit / TestNG 测试运行与调试 "vscjava.vscode-java-test", // Maven 项目支持(生命周期、依赖、目标执行) "vscjava.vscode-maven", // Java 项目依赖关系与类路径可视化 "vscjava.vscode-java-dependency", // ===== Spring Boot ===== // Spring Boot 插件合集 "vmware.vscode-boot-dev-pack", // Spring Boot 开发支持(配置提示、诊断、导航) "vmware.vscode-spring-boot", // Spring Boot 应用启动 / 管理面板 "vscjava.vscode-spring-boot-dashboard", // Spring Initializr:创建 Spring Boot 项目 "vscjava.vscode-spring-initializr", // ===== ORM / 数据访问 ===== // MyBatis / iBatis XML 辅助(跳转、补全、校验) "yangbaopan.vscode-java-ibatisx", // 依赖安全与许可证分析(CVE / License 风险提示) "redhat.fabric8-analytics", // ===== 前端(如工程包含前端模块) ===== // Vue 插件合集(基于 Volar,适配 Vue 3) "misterj.vue-volar-extention-pack", // HTML 中 class / id 对应 CSS 自动补全 "ecmel.vscode-html-css", // ===== 配置文件 ===== // YAML 支持(Spring / Kubernetes / CI 配置) "redhat.vscode-yaml", // XML 支持(校验 / 补全 / 格式化) "redhat.vscode-xml" ] } -
settings.json 配置:
json{ "java.format.settings.url": ".vscode/java-formatter.xml", // java格式化配置文件 "java.format.settings.profile": "IDEA-Default", // 使用指定的 Profile // 指定 Maven 本地安装路径 (建议手动指定,避免环境混乱) "maven.executable.path": "mvn", // 如果已配环境变量填 mvn,否则填全路径("D:\\apache-maven-3.6.3\\bin\\mvn") // maven常用快捷指令 "maven.terminal.favorites": [ { "alias": "快速打包(强制刷新)", "command": "clean install -U", "debug": false }, { "alias": "调试模式打包", "command": "clean install -U -X", "debug": false } ] } -
launch.json 配置:
json{ // VS Code 统一使用 "0.2.0" "version": "0.2.0", "configurations": [ { // 启动类型 "type": "java", // 启动入口显示的名称 "name": "sh-test2-security", // 启动项目名 "projectName": "aplus-securitycenter-start", // 启动方式 "request": "launch", // 启动时主类 "mainClass": "com.centaline.aplus.AplusSecurityApplication", // 启动时JVM参数 "vmArgs": [ "-Dfile.encoding=UTF-8", "-Dserver.port=8080" ], // 输出到VSCode的"调试控制台"(Debug Console)面板,对UTF-8支持最好,几乎不会乱码 "console": "internalConsole" } } -
java-formatter.xml 配置:
xml<?xml version="1.0" encoding="UTF-8" standalone="no"?> <profiles version="20"> <profile kind="CodeFormatterProfile" name="IDEA-Default" version="20"> <!-- 通用 --> <setting id="org.eclipse.jdt.core.formatter.lineSplit" value="2147483647" /> <setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space" /> <setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4" /> <setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4" /> <!-- 花括号 --> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line" /> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line" /> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line" /> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line" /> <!-- 换行 --> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="do_not_insert" /> <!-- 空格 --> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do_not_insert" /> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert" /> <!-- 导入 --> <setting id="org.eclipse.jdt.core.formatter.imports_order" value="java;javax;org;com;" /> <setting id="org.eclipse.jdt.core.formatter.imports_on_demand_threshold" value="99" /> <setting id="org.eclipse.jdt.core.formatter.imports_static_on_demand_threshold" value="99" /> </profile> </profiles> -
.gitignore
gitignore## maven target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ ### STS ### .apt_generated .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr /out/ ### NetBeans ### /nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ build/ !**/src/main/**/build/ !**/src/test/**/build/ ### VS Code ### .vscode/ ## Eclipse Core .project .classpath .settings # External tool builders .externalToolBuilers/ # Locally stored "Eclipse launch configurations" *.launch # CDT-specific .cproject # Java annotation processor (APT) .factorypath # PDT-specific .buildpath # TeXlipse plugin .texlipse ## Mac .DS_Store ## SVN .svn catalina.base_IS_UNDEFINED ## rebel rebel-remote.xml rebel.xml ## log logs *.log ## other dubbo-cache dubbo-cache.lock
七、调试运行工程
7.1 运行Java程序
7.1.1 运行主类
方法1 - 代码Lens:
- 打开包含
main方法的Java文件 - 点击
main方法上方的 "Run | Debug" 链接 - 选择 "Run '类名.main()'"
方法2 - 右键菜单:
- 在编辑器中右键点击Java文件
- 选择 "Run Java"
方法3 - 命令面板:
Ctrl + Shift + P→Java: Run Java- 选择要运行的主类
7.1.2 运行Spring Boot应用
使用Spring Boot Dashboard:
- 打开左侧活动栏的 "Spring Boot Dashboard" 图标
- 找到要启动的应用
- 点击右侧的 "Run" 或 "Debug" 按钮
使用代码Lens:
- 打开主类(带
@SpringBootApplication注解) - 点击类上方的 "Run | Debug" 链接
使用终端:
bash
# Maven方式
mvn spring-boot:run
# 或先打包再运行
mvn clean package
java -jar target/demo-project-1.0.0-SNAPSHOT.jar
7.2 调试Java程序
7.2.1 设置断点
- 在代码行号左侧点击,设置断点(红色圆点)
- 或使用快捷键
F9在当前行切换断点
断点类型:
- 行断点:在特定代码行暂停
- 条件断点 :右键断点 → 输入条件表达式(如
i > 100) - 命中次数断点:右键断点 → 设置命中次数
- 异常断点 :
Ctrl + Shift + P→Java: Add Exception Breakpoint
7.2.2 启动调试
启动调试会话:
- 点击左侧活动栏的 "运行和调试" 图标(
Ctrl + Shift + D) - 选择调试配置(如 "Launch Current File")
- 按
F5或点击绿色播放按钮启动调试
调试控制按钮:
| 按钮 | 快捷键 | 功能 |
|---|---|---|
| 继续 | F5 |
继续执行到下一个断点 |
| 单步跳过 | F10 |
执行当前行,不进入方法 |
| 单步进入 | F11 |
进入方法内部 |
| 单步跳出 | Shift+F11 |
跳出当前方法 |
| 重启 | Ctrl+Shift+F5 |
重新启动调试 |
| 停止 | Shift+F5 |
停止调试 |
变量视图:
- 查看当前作用域内的变量值
- 展开对象查看属性
- 修改变量值(右键 → Set Value)
监视视图:
- 添加表达式进行监视(如
user.getName()) - 实时查看表达式值变化
调用堆栈视图:
- 查看方法调用链
- 点击堆栈帧跳转到对应代码位置
断点视图:
- 管理所有断点
- 启用/禁用断点
- 编辑断点条件
7.3 单元测试
7.3.1 运行单元测试
运行单个测试:
- 打开测试类
- 点击测试方法上方的 "Run Test" 链接
- 或右键 → "Run Test"
运行所有测试:
- 打开测试类
- 点击类上方的 "Run All Tests" 链接
使用测试资源管理器:
- 点击左侧活动栏的 "Testing" 图标
- 展开测试树,选择要运行的测试
- 点击运行按钮
使用终端:
bash
# 运行所有测试
mvn test
# 运行单个测试类
mvn test -Dtest=UserServiceTest
# 运行单个测试方法
mvn test -Dtest=UserServiceTest#testCreateUser
7.3.2 调试单元测试
- 在测试方法中设置断点
- 点击测试方法上方的 "Debug Test" 链接
- 或使用右键菜单选择 "Debug Test"
八、vscode快捷键
8.1 编辑快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + Shift + K |
删除当前行 |
Ctrl + Enter |
下方插入新行 |
Ctrl + Shift + Enter |
上方插入新行 |
Alt + ↑ |
当前行上移 |
Alt + ↓ |
当前行下移 |
Ctrl + ] |
增加缩进 |
Ctrl + [ |
减少缩进 |
Ctrl + / |
切换行注释 |
Ctrl + Shift + / |
切换块注释 |
Ctrl + D |
选中下一个相同单词(多光标) |
Ctrl + Shift + L |
选中所有相同单词 |
Alt + 鼠标点击 |
多光标编辑 |
Ctrl + Shift + Alt + ↑/↓ |
列选择模式 |
8.2 导航快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + P |
快速打开文件 |
Ctrl + Shift + O |
跳转到文件中的符号 |
Ctrl + T |
工作区符号搜索 |
Ctrl + G |
跳转到指定行 |
F12 |
跳转到定义 |
Alt + F12 |
速览定义(不跳转) |
Ctrl + Shift + F12 |
显示所有引用 |
Ctrl + - |
返回上一个位置 |
Ctrl + Shift + - |
前进到下一个位置 |
Ctrl + Shift + F |
全局搜索 |
Ctrl + Shift + H |
全局替换 |
8.3 代码操作快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + Space |
触发建议(代码补全) |
Ctrl + Shift + Space |
参数提示 |
Ctrl + . |
快速修复 |
Ctrl + Shift + R |
重构菜单 |
F2 |
重命名符号 |
Ctrl + K Ctrl + F |
格式化选中代码 |
Shift + Alt + F |
格式化整个文档 |
Ctrl + K Ctrl + X |
删除尾部空格 |
Ctrl + K Ctrl + C |
添加行注释 |
Ctrl + K Ctrl + U |
移除行注释 |
8.4 窗口/视图快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + B |
切换侧边栏显示 |
Ctrl + Shift + E |
打开资源管理器 |
Ctrl + Shift + F |
打开搜索 |
Ctrl + Shift + G |
打开源代码管理 |
Ctrl + Shift + D |
打开调试视图 |
Ctrl + Shift + X |
打开扩展视图 |
Ctrl + J |
切换面板(终端) |
Ctrl + Shift + N |
新建窗口 |
Ctrl + W |
关闭当前标签 |
Ctrl + K W |
关闭所有标签 |
Ctrl + Tab |
切换标签页 |
Ctrl + 1/2/3... |
切换到第N个编辑器组 |
8.5 调试快捷键
| 快捷键 | 功能 |
|---|---|
F5 |
开始/继续调试 |
Ctrl + F5 |
运行(不调试) |
Shift + F5 |
停止调试 |
Ctrl + Shift + F5 |
重启调试 |
F9 |
切换断点 |
F10 |
单步跳过 |
F11 |
单步进入 |
Shift + F11 |
单步跳出 |
Ctrl + Shift + D |
打开调试视图 |
8.6 Git快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + Shift + G |
打开Git视图 |
Ctrl + Enter |
提交(Git视图中) |
Ctrl + Shift + G C |
查看提交 |
Ctrl + Shift + G B |
查看分支 |
8.7 AI功能快捷键(Lingma)
| 快捷键 | 功能 |
|---|---|
Ctrl + Shift + L |
打开通义灵码对话面板 |
Ctrl + I |
行内代码补全 |
Tab |
接受AI建议 |
Esc |
取消AI建议 |
Ctrl + → |
逐词接受建议 |
Alt + ] |
下一个建议 |
Alt + [ |
上一个建议 |
8.8 自定义快捷键
修改快捷键:
文件 → 首选项 → 键盘快捷方式(Ctrl + K Ctrl + S)- 搜索要修改的命令
- 双击快捷键进行编辑
- 按下新的快捷键组合
推荐自定义配置:
json
// keybindings.json
[
{
"key": "ctrl+shift+t",
"command": "java.test.run"
},
{
"key": "ctrl+shift+y",
"command": "java.debug.run"
},
{
"key": "ctrl+shift+m",
"command": "maven.goal.custom"
}
]
附录:常见问题排查
A.1 Java扩展无法启动
症状:Java功能无法使用,提示语言服务器错误
解决:
- 检查
java.jdt.ls.java.home配置是否正确 - 清理工作区:
Ctrl + Shift + P→Java: Clean Workspace - 重新加载窗口:
Ctrl + Shift + P→Developer: Reload Window
A.2 Maven依赖无法下载
症状:pom.xml报红,依赖显示缺失
解决:
- 检查网络连接
- 检查settings.xml中的镜像配置
- 强制更新:
mvn clean install -U - 清除.lastUpdated文件
A.3 中文显示乱码
解决:
- 统一设置为UTF-8编码
- 检查IDE、项目、文件的编码设置
- 在pom.xml中添加编码配置
A.4 内存不足
症状:IDE卡顿,提示OutOfMemory
解决 :
修改 settings.json:
json
{
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx4G -Xms100m"
}