VS Code / Lingma AI IDE Java 开发攻略手册

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 Google 真正的 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系统 开发者模式 后,可避免每次都"以管理员身份运行"。

操作路径:

  1. Win + I → 打开 设置

  2. 系统 → 开发者选项

  3. 打开 开发者模式(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 管理方案。

  1. 规范 java 目录结构

    建议在 非系统盘(如 D 盘) 统一管理 JDK:D:\jdk

    目录规划说明:

    • 版本目录:每个 JDK 一个独立目录

    • 虚拟入口default 用作软链接入口

    ⚠️ 注意

    • 如果你之前手动创建过 D:\jdk\default 文件夹,请先删除

    • 该目录将由脚本自动创建为 软链接

  2. java环境变量配置

    路径Win + I → 系统 → 高级系统设置 → 环境变量

    变量名 变量值 类型
    JAVA_HOME D:\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 列表,并上移至第一行(防止系统自带路径干扰)。

  3. JDK 安装说明

    下载渠道

    类型 推荐源 说明
    官方归档 Oracle JDK Archive 需 Oracle 账号,版本最全
    国内镜像 INJDK 导航站 免登录,速度快,含多厂商发行版

    安装要求

    强烈建议使用压缩包版(zip)而非安装程序(exe)

    1. 下载对应版本的 .zip 压缩包

    2. 解压至 D:\jdk\ 目录

    形成如下目录结构:

    text 复制代码
    D:\jdk\jdk1.8.0_471
    D:\jdk\jdk-17.0.17
    D:\jdk\jdk-21.0.9
    D:\jdk\jdk-25.0.1
  4. 配置 JDK 快捷切换命令

    编辑 .bashrc

    .bashrc 位于当前用户主目录,用于定义终端启动时加载的命令与别名。

    例如 windows 账号为 vincent,则这个在 C:/Users/vincent/.bashrc

    操作步骤:

    shell 复制代码
    cd ~ 
    vi .bashrc

    或:

    shell 复制代码
    notepad .bashrc

    alias 配置

    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"

    保存后执行:

    shell 复制代码
    source ~/.bashrc
  5. jdk快捷切换验证

    打开 Git Bash 终端,依次参照下方操作,显示出对应jdk版本号即表示配置ok

    shell 复制代码
    jdk8

    java 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)

    shell 复制代码
    jdk17

    java 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)

    shell 复制代码
    jdk21

    java 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)

    shell 复制代码
    jdk25

    java 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

  1. maven环境变量配置

    路径Win + I → 系统 → 高级系统设置 → 环境变量

    变量名 变量值 类型
    MAVEN_HOME D:\apache-maven-3.6.3 用户/系统变量
    Path追加 %MAVEN_HOME%\bin 系统变量(置顶)
  2. 验证maven

    打开 Git Bash 终端窗口,输入查看版本命令:

    shell 复制代码
    mvn -v

    Apache 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-test

      JUnit / 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项目
  1. 打开项目
    • 点击菜单栏 FileOpen Folder...
    • 选择包含pom.xml文件的项目根目录
    • 点击 Select Folder
  2. 等待项目加载
    • 首次打开时,IDE会自动检测并加载Maven项目
    • 会弹出提示询问是否导入项目,点击 Yes
  3. Maven依赖下载
    • 在底部状态栏可以看到Maven正在下载依赖
    • 或者在侧边栏的Maven插件中查看进度
5.2 从Git仓库克隆
  1. 克隆仓库
    • 点击菜单栏 ViewCommand Palette (或按 Ctrl+Shift+P)
    • 输入 Git: Clone
    • 输入仓库URL
    • 选择存储位置
  2. 打开克隆的项目
    • 克隆完成后,选择 Open Repository in New Window
    • 或者关闭当前窗口,重新打开项目
5.3 导入父项目
  1. 打开父项目根目录(包含父 pom.xml
  2. IDE会自动识别多模块结构
  3. 在"Java项目"视图中可以看到所有子模块
5.4 单独导入子模块
  1. 打开特定子模块目录
  2. 右键点击 pom.xml添加到工作区
  3. 或在 pom.xml 上右键选择 Maven → 导入项目

5.2 创建工程

5.2.1 创建Maven项目

方法1 - 使用命令面板

  1. Ctrl + Shift + PJava: Create Java Project
  2. 选择 Maven
  3. 选择 maven-archetype-quickstart(简单Java项目)或 maven-archetype-webapp(Web项目)
  4. 输入Group Id、Artifact Id、Version
  5. 选择项目保存位置

方法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

  1. Ctrl + Shift + PSpring Initializr: Generate a Maven Project
  2. 选择语言:Java
  3. 选择Spring Boot版本(推荐稳定版)
  4. 输入Group Id和Artifact Id
  5. 选择打包方式:Jar
  6. 选择Java版本
  7. 选择依赖(可多选):
    • Spring Web - Web应用开发
    • Spring Data JPA - 数据持久化
    • MySQL Driver - MySQL数据库
    • Lombok - 代码简化
    • Spring Boot DevTools - 热部署
  8. 选择项目保存位置

5.4 项目导入常见问题

5.4.1 Maven依赖下载失败

问题现象pom.xml 报红,依赖无法解析

解决方案

  1. 检查网络连接和Maven镜像配置

  2. 强制更新依赖:

    • 命令面板:Maven: Execute Commandsclean install -U
    • 或终端:mvn clean install -U
  3. 清除本地仓库缓存:

    bash 复制代码
    # 删除本地仓库中的错误文件
    rm -rf D:/maven-repo/**/*.lastUpdated
5.4.2 JDK版本不匹配

问题现象 :编译报错 invalid source release

解决方案

  1. 检查项目 pom.xml 中的Java版本:

    xml 复制代码
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
  2. 使用Git Bash切换对应JDK版本:

    bash 复制代码
    jdk8  # 或 jdk17, jdk21
  3. 在IDE中重新加载项目:Ctrl + Shift + PJava: Clean Workspace

5.4.3 编码问题

问题现象:中文显示乱码或编译报错

解决方案

  1. 确保所有编码设置为UTF-8:

    json 复制代码
    {
        "files.encoding": "utf8",
        "java.jdt.ls.vmargs": "-Dfile.encoding=UTF-8"
    }
  2. 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

  1. 打开包含 main 方法的Java文件
  2. 点击 main 方法上方的 "Run | Debug" 链接
  3. 选择 "Run '类名.main()'"

方法2 - 右键菜单

  1. 在编辑器中右键点击Java文件
  2. 选择 "Run Java"

方法3 - 命令面板

  1. Ctrl + Shift + PJava: Run Java
  2. 选择要运行的主类
7.1.2 运行Spring Boot应用

使用Spring Boot Dashboard

  1. 打开左侧活动栏的 "Spring Boot Dashboard" 图标
  2. 找到要启动的应用
  3. 点击右侧的 "Run" 或 "Debug" 按钮

使用代码Lens

  1. 打开主类(带 @SpringBootApplication 注解)
  2. 点击类上方的 "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 设置断点
  1. 在代码行号左侧点击,设置断点(红色圆点)
  2. 或使用快捷键 F9 在当前行切换断点

断点类型

  • 行断点:在特定代码行暂停
  • 条件断点 :右键断点 → 输入条件表达式(如 i > 100
  • 命中次数断点:右键断点 → 设置命中次数
  • 异常断点Ctrl + Shift + PJava: Add Exception Breakpoint
7.2.2 启动调试

启动调试会话

  1. 点击左侧活动栏的 "运行和调试" 图标(Ctrl + Shift + D
  2. 选择调试配置(如 "Launch Current File")
  3. F5 或点击绿色播放按钮启动调试

调试控制按钮

按钮 快捷键 功能
继续 F5 继续执行到下一个断点
单步跳过 F10 执行当前行,不进入方法
单步进入 F11 进入方法内部
单步跳出 Shift+F11 跳出当前方法
重启 Ctrl+Shift+F5 重新启动调试
停止 Shift+F5 停止调试

变量视图

  • 查看当前作用域内的变量值
  • 展开对象查看属性
  • 修改变量值(右键 → Set Value)

监视视图

  • 添加表达式进行监视(如 user.getName()
  • 实时查看表达式值变化

调用堆栈视图

  • 查看方法调用链
  • 点击堆栈帧跳转到对应代码位置

断点视图

  • 管理所有断点
  • 启用/禁用断点
  • 编辑断点条件

7.3 单元测试

7.3.1 运行单元测试

运行单个测试

  1. 打开测试类
  2. 点击测试方法上方的 "Run Test" 链接
  3. 或右键 → "Run Test"

运行所有测试

  1. 打开测试类
  2. 点击类上方的 "Run All Tests" 链接

使用测试资源管理器

  1. 点击左侧活动栏的 "Testing" 图标
  2. 展开测试树,选择要运行的测试
  3. 点击运行按钮

使用终端

bash 复制代码
# 运行所有测试
mvn test

# 运行单个测试类
mvn test -Dtest=UserServiceTest

# 运行单个测试方法
mvn test -Dtest=UserServiceTest#testCreateUser
7.3.2 调试单元测试
  1. 在测试方法中设置断点
  2. 点击测试方法上方的 "Debug Test" 链接
  3. 或使用右键菜单选择 "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 自定义快捷键

修改快捷键

  1. 文件 → 首选项 → 键盘快捷方式Ctrl + K Ctrl + S
  2. 搜索要修改的命令
  3. 双击快捷键进行编辑
  4. 按下新的快捷键组合

推荐自定义配置

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功能无法使用,提示语言服务器错误

解决

  1. 检查 java.jdt.ls.java.home 配置是否正确
  2. 清理工作区:Ctrl + Shift + PJava: Clean Workspace
  3. 重新加载窗口:Ctrl + Shift + PDeveloper: Reload Window

A.2 Maven依赖无法下载

症状:pom.xml报红,依赖显示缺失

解决

  1. 检查网络连接
  2. 检查settings.xml中的镜像配置
  3. 强制更新:mvn clean install -U
  4. 清除.lastUpdated文件

A.3 中文显示乱码

解决

  1. 统一设置为UTF-8编码
  2. 检查IDE、项目、文件的编码设置
  3. 在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"
}

相关推荐
Bruk.Liu2 小时前
(LangChain实战3):LangChain阻塞式invoke与流式stream的调用
人工智能·python·langchain
独自破碎E2 小时前
【回溯】二叉树的所有路径
android·java
小小工匠2 小时前
大模型开发 - 零手写 AI Agent:深入理解 ReAct 模式与 Java 实现
人工智能·react
风景的人生2 小时前
application/x-www-form-urlencoded
java·mvc
sheji34162 小时前
【开题答辩全过程】以 基于Java的流浪猫救济中心系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
翱翔的苍鹰2 小时前
法律问答机器人”技术方案”的实现
人工智能·rnn·深度学习·自然语言处理
毕设源码-郭学长2 小时前
【开题答辩全过程】以 高校选修课管理系统的设计与实现为例,包含答辩的问题和答案
java
m0_603888712 小时前
Structured Over Scale Learning Spatial Reasoning from Educational Video
人工智能·深度学习·机器学习·ai·论文速览
爱吃面条的猿2 小时前
FontMetrics 字体属性类 java
java