将vscode打造为你的开发工具的首选

文章目录

    • 前言
    • vscode主要配置
    • vscode的两个主要快捷键
    • 创建你的代码模版
    • Java
      • 配置JDK和Gradle环境
      • 主要插件
      • 常见的配置
      • launch.json配置
      • 运行测试用例
      • 常见问题
      • 常用快捷键
    • Python
      • 主要插件
      • settings.json配置
      • launch.json配置示例
    • Javascript/typescript
      • 常用插件
      • settings.json样例
    • Golang
      • 主要插件
      • settings.json
    • 参考

前言

什么是IDE?

IDE = 文本编辑 + 搜索 + 代码导航 + 编译调试 + 测试 + …

JetBrains系列功能强大,但也挺耗资源的,vscode相对轻量级一点,且插件众多,日新月异,不可不学。我实际上这两个IDE是一起用的。
我主要使用四大编程语言:Java、Python、JS/TS和golang。

  • Java主要做RESTful API server,以及和各种后端数据打交道。以及Android应用。
  • Python主要写爬虫和深度学习程序
  • Javascript/typescript主要写前端Vue/React程序,以及小部分Electron程序
  • golang还不精通,主要写一些小工具,网络相关的居多

为了方便日后查阅,特把个人的配置整理出来。下面都是针对MacOS环境的设置。

在vscode里配置java开发比较繁琐,其它几个语言相对容易些。如果搞掂了这四种语言,意味着我一个Mac本上可以同时跑多个工程,不用担心卡顿了。

vscode主要配置

settings.json是主要配置文件,settings.json可以放在工作区(.vscode/settings.json),也可以放在用户区和全局下。
优先级:工作区>用户>全局默认,前面的配置覆盖后面的,这样做的好处是你可以为不同工作区、不同用户做不同配置,而不会互相干扰。
例如在MacOS下:~/Library/Application Support/code/User/settings.json就是用户区的。全局的在安装目录下。

vscode的两个主要快捷键

ctrl+p 文件搜索快捷键
ctrl+shift+p 命令快捷键
command + , 调出设置

创建你的代码模版

选择菜单里的 文件 > 首选项 > 用户代码片段,使用 $1,$2 等指定光标位置,这些数字指定了光标跳转的顺序,$0表示最终光标位置。
下面是一个创建react native组件的模板:

{// Place your 全局 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. // Placeholders with the same ids are connected.// Example:"react native component template": {		"prefix": "react","body": ["/**","* @file ${2: $TM_FILENAME_BASE}","* @date $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE","*/","$0","","import React from 'react';","import {","    View,","    Text,",				"    StyleSheet",				"} from 'react-native';","import { useEffect, useState } from 'react';","import PropTypes from 'prop-types';","","const $TM_FILENAME_BASE = (props) => { ","    const [state, setState] = useState()","    const fetchData = () => {","        try {","           fetch('')",		"           .then((response) => response.json())","           .then((responseJson) => { ","           })","           .catch((error) => {","               console.error(error);","            });","        } catch (error) {","            console.error(error);","        } finally {","    ","        }","    return <View></View>","};","","$TM_FILENAME_BASE.propTypes = {};","const styles = StyleSheet.create({","    container: {","        justifyContent: 'center',","        flex: 1","    }","})","","export default $TM_FILENAME_BASE;",    ],"description": "React Native Component Template"}
}

Java

目标:在vscode中运行和调试SpringBoot应用,执行gradle构建,和执行JUnit测试用例。
先总结一下:

  • vscode打开带pom.xml或build.gradle的文件夹时,会自动识别为java project。没有任何build tool的文件夹被视为unmanaged foldler,就得手工配置Java runtime和source folder以及classpath了。
  • vscode通过maven和gradle插件,可以分别创建maven project和gradle project。注意,目前不支持Android工程,搞Android开发还是老老实实用Android Studio吧。

有时遇到不能正确识别出Java project,可以尝试清除vscode缓存,在~/Library/ApplicationSupport/Code/User/workspaceStorage下,都删除好了。也可以安装Workspaces clean cache这个插件。

配置JDK和Gradle环境

先查看机器上装有哪些JDK版本:

/usr/libexec/java_home -V

Matching Java Virtual Machines (6):17.0.5 (x86_64) "JetBrains s.r.o." - "JBR-17.0.5+1-653.23-nomod 17.0.5" /Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home17.0.5 (x86_64) "Eclipse Adoptium" - "OpenJDK 17.0.5" /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home17.0.1 (x86_64) "Oracle Corporation" - "OpenJDK 17.0.1" /Users/ku/Library/Java/JavaVirtualMachines/openjdk-17.0.1/Contents/Home16.0.2 (x86_64) "Amazon.com Inc." - "Amazon Corretto 16" /Users/ku/Library/Java/JavaVirtualMachines/corretto-16.0.2/Contents/Home1.8.351.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home1.8.0_181 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home

可以根据需要切换一下JDK版本:

export JAVA_HOME=/usr/libexec/java_home -v 17

然后,在settings.json中,配置java.home和gradle.home:

"java.jdt.ls.java.home": "/Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home",
"spring-boot.ls.java.home": "/Library/Java/JavaVirtualMachines/jbr-17.0.5-osx-x64-b653.23/Contents/Home",
"java.import.gradle.home": "/opt/gradle-7.5.1"

主要插件

  • Java Extension for Pack
  • Spring Boot Extension Pack
  • Gradle Extension Pack
  • Gradle Language Support
  • Lombok: 智能生成 setter getter toString

常见的配置

{
"java.compile.nullAnalysis.mode": "disabled",
"java.dependency.packagePresentation": "hierarchical"}

launch.json配置

{
"configurations": [{"type": "java","name": "Spring Boot-BudgetApplication<budget>","request": "launch","cwd": "${workspaceFolder}","console": "internalConsole","mainClass": "com.someone.budget.BudgetApplication","projectName": "cms","args": ["--module-path","lib/javafx-sdk-13/lib","--add-modules=javafx.controls"]}
]

args和vmArgs都有两种写法:
“vmArgs”: “-Xms256m -Xmx1g -Dserver=production”
或者:
“vmArgs”: [“-Xms256m”, “-Xmx1g”, “-Dserver=production”]

运行测试用例

正常在测试视图里能列出所有的测试用例。如果要查看用例中System.out.println()输出,切换到窗口:
在这里插入图片描述

常见问题

  • 无法找到Test
    解析:vscode没有识别出java工程,所以无法enable java test。可以清理vscode缓存和无关的文件,然后重新导入
  • 命令行编译正确,但vscode问题里一堆的编译错误
    解析:估计装了过多的插件,导致部分插件误报问题
    在这里插入图片描述
    红框标出的插件不用装,这也是vscode的一大问题:插件太繁荣,有时装多了会起冲突
  • For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.

这个问题是需要给java compiler加上一个参数:-parameters
在settings.json中定义:

"java.settings.url": "/pathto/settings.prefs"

然后,新建一个文件settings.prefs,放到任意位置均可,内容如下:

org.eclipse.jdt.core.compiler.codegen.methodParameters=generate

常用快捷键

Shift+Alt+O :自动导入包
Ctrl + Command + B :跳到实现

Python

主要插件

settings.json配置

{"python.testing.unittestEnabled": false,"python.testing.nosetestsEnabled": false,"python.testing.pytestEnabled": true,"python.testing.autoTestDiscoverOnSaveEnabled": true,"python.testing.pytestArgs": [".","--capture=no","-q", "--disable-warnings"],  
}

launch.json配置示例

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Python","type": "python","request": "launch","stopOnEntry": false,"pythonPath": "C:\\Users\\hetao\\anaconda3\\python.exe","program": "${file}","cwd": "${workspaceRoot}","env": {},"envFile": "${workspaceRoot}/.env","debugOptions": ["WaitOnAbnormalExit","WaitOnNormalExit","RedirectOutput"]}]
}

Javascript/typescript

vscode对于typescript的支持最为友好,因为它本身就是用ts开发的。

常用插件

settings.json样例

{"cSpell.words": ["Element Plus", "element-plus"],"typescript.tsdk": "node_modules/typescript/lib","editor.formatOnSave": true,"npm.packageManager": "pnpm","eslint.probe": ["javascript","javascriptreact","typescript","typescriptreact","html","vue","markdown","json","jsonc"],"eslint.validate": ["javascript","javascriptreact","typescript","typescriptreact","html","vue","markdown","json","jsonc"],"vite.devCommand": "pnpm run dev -- --","i18n-ally.localesPaths": "packages/locale/lang","i18n-ally.enabledParsers": ["ts"],"i18n-ally.enabledFrameworks": ["vue", "vue-sfc"],"i18n-ally.keystyle": "nested","iconify.includes": ["ep"],"unocss.root": "./docs"
}

Golang

主要插件

  • Go for Visual Studio Code
  • Go Tools: 按ctrl+shift+p 调出命令面板,输入go install tools 选Go: Install/Update Tools,将所有 16 个插件都勾选上。

settings.json

{"go.goroot": "","go.gopath": "","http.proxy": "192.168.0.1:1081", // 根据需要,安装包需要"go.inferGopath": true,"go.autocompleteUnimportedPackages": true,"go.gocodePackageLookupMode": "go","go.gotoSymbol.includeImports": true,"go.useCodeSnippetsOnFunctionSuggest": true,"go.useCodeSnippetsOnFunctionSuggestWithoutType": true,"go.docsTool": "gogetdoc",
}

参考

  • vscode java 支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23393.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20230512-VSCode-配置C++17-win11-22h2

20230512-VSCode-配置C17-win11-22h2 一、软件环境 标签&#xff1a;C VSCode w64devkit gcc12分栏&#xff1a;C操作系统&#xff1a;Windows11 x64 22h2编译器&#xff1a;vscode-1.78.2 w64devkit-1.18.0 二、操作步骤 1. 下载安装VScode 官网 打开官网【https://code…

VsCode超实用插件推荐,让你的开发效率火力全开

辅助开发类&#xff1a; 1. Vetur VUE开发必备插件 1.语法高亮&#xff0c;包括 vue/html css/sass/scss/less/stylus js/ts 2.语义高亮&#xff0c;除了支持template模板以外&#xff0c;还支持大多数主流的前端开发脚本和插件 3.语法错误检查&#xff0c;包括 CSS/SCSS/LE…

VScode插件推荐以及settings配置

1.[Deprecated] Bracket Pair Colorizer 2&#xff1a;一个可定制的扩展&#xff0c;用于为匹配的括号着色。 2.Ant Design Vue helper&#xff1a;antDesign的扩展工具&#xff08;别的ui框架也有这样的插件&#xff0c;可以根据自己的需求下载&#xff09;。 3.Auto Close …

搭建自己的聊天室平台、公司内部聊天平台,Rocket.Chat搭建及使用

一&#xff0c;简介 rocket.chat是一个开源的社交软件&#xff0c;即可以直接在web页面使用&#xff0c;也可以下载APP(Android&#xff0c;IOS&#xff0c;Windows&#xff0c;Mac OS) 主要功能&#xff1a;群组聊天&#xff0c;直接通信&#xff0c;私聊群&#xff0c;桌面…

网络内部搭建NTP服务器

医院内部很多服务器及科室客户端电脑经常出现时间不一致的状况&#xff0c;导致收费、挂号及检查等项目出现问题。因为现在医院都部署了银医&#xff0c;通过微信、支付宝等互联网应用实现挂号、收费、报告查询等。所以可以在医院内外网互联的前置机上部署一个NTP服务&#xff…

解决登录提示Access denied,You do not have access to chat.openai.com

在登录使用相关AI对话服务时&#xff0c;登录提示&#xff1a; Access denied You do not have access to chat.openai.com. The site owner may have set restrictions that prevent you from accessing the site. 原因是IP被阻挡了&#xff0c;参考解决&#xff1a; 解决访问…

报错https://chat.openai.com/ api/auth/ session 429怎么办

报错https://chat.openai.com/ api/auth/ session 429怎么办 记录一下今天遇到的bug 场景是这样的&#xff1a;我正常进入chatgpt的提问页面&#xff0c;然后一直转圈&#xff0c;重新登陆&#xff0c;清楚浏览器缓存&#xff0c;都不行。 文章目录 报错https://chat.openai.c…

用了cloudflare后,网站提示Sorry, you have been blocked怎么解决?

其实cloudflare还是非常智能的&#xff0c;但有时候为了安全起见&#xff0c;我们在网站后台修改参数的时候会被CF拦截&#xff0c;我就遇到了好几次提示Sorry, you have been blocked的情况。 遇到这种情况后&#xff0c;我首先找了官方的说明文档&#xff0c;但操作了半天好…

最新版腾讯防水墙(二代)识别

2022最新版腾讯防水墙&#xff08;二代&#xff09;识别 戳这里→康康你手机号在过多少网站注册过&#xff01;&#xff01;&#xff01; 友情推荐&#xff1a;新一代安全短信 * 验证码地址&#xff1a;https://007.qq.com/online.html * 使用OpenCv模板匹配 * 成功率90%左右…

使用大型语言模(LLM)构建系统(七):评估1

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程&#xff0c;我想和大家一起分享一下该门课程的一些主要内容。之前我们已经学习了下面这些知识&#xff1a; 使用大型语言模(LLM)构建系统(一)&#xff1a;分类使用大型语言模(LLM)构建系统(二):内容审核、…

chatgpt赋能Python-python_def函数报错

如何关闭Python Console 在Python编程中&#xff0c;Python Console是一个常用的工具&#xff0c;它可以用来测试和调试代码、查看变量和函数等等。但是&#xff0c;在一些情况下&#xff0c;你可能需要关闭Python Console以便进行其他操作。那么&#xff0c;如何关闭Python C…

chatgpt赋能Python-python_nonetype报错

Python NoneType报错&#xff1a;原因、解决方法和预防措施 Python 是一种面向对象的高级编程语言&#xff0c;用于快速编写脚本和应用程序。但是&#xff0c;当我们在编写 Python 代码时&#xff0c;可能会遇到 NoneType 报错&#xff1b;这是一种类型错误&#xff0c;它发生…

main函数的行参(argc、argv)实例解释

目录 前言 一、问题描述 二、行参含义 三、题目应用 1、代码&#xff08;重点在中文批注处&#xff09; 2、执行测试 前言 在做CS50 Week3的problem set--plurality时&#xff0c;遇到main函数里带了两个行参&#xff08;int argc&#xff0c; string argv[]&#xff09;…

LLM探索:GPT类模型的几个常用参数 Top-k, Top-p, Temperature

Top-k抽样模型从最可能的"k"个选项中随机选择一个如果k10&#xff0c;模型将从最可能的10个单词中选择一个Top-p抽样模型从累计概率大于或等于“p”的最小集合中随机选择一个如果p0.9&#xff0c;选择的单词集将是概率累计到0.9的那部分Temperature控制生成文本随机性…

GPT-4震撼发布:如何加入候补名单

ChatGPT 点燃了科技行业的明灯&#xff0c;GPT-4 能燎原吗&#xff1f; 谁能革得了 ChatGPT 的命&#xff1f;现在看来还是 OpenAI 自己。 在 ChatGPT 引爆科技领域之后&#xff0c;人们一直在讨论 AI「下一步」的发展会是什么&#xff0c;很多学者都提到了多模态&#xff0c;我…

chatgpt赋能python:如何用Python打造一个简单的抽奖程序

如何用Python打造一个简单的抽奖程序 随着互联网的不断发展&#xff0c;抽奖活动已经成为了各种营销活动的必备环节&#xff0c;因此如何快速便捷地实现一个抽奖程序也变得尤为重要。本文将介绍如何使用Python打造一个简单的抽奖程序。 一、抽奖程序的工作原理 抽奖程序的核…

一文读懂 ChatGPT 插件功能:语言模型获取新信息的“眼睛和耳朵”

来源&#xff1a;OpenAI 编译&#xff1a;巴比特 图片来源&#xff1a;由无界 AI工具生成 OpenAI&#xff1a;我们已经在 ChatGPT 中实现了对插件的初步支持。插件是专门为语言模型设计的工具&#xff0c;以安全为核心原则&#xff0c;并帮助 ChatGPT 访问最新的信息&#xff0…

OpenAI 再丢“王炸”:ChatGPT “封印”解除,能联网、搜索了!

整理 | 屠敏 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 「乱花渐欲迷人眼」&#xff0c;新的一天里&#xff0c;OpenAI 再次丢出“王炸”&#xff1a;ChatGPT 推出插件功能&#xff0c;既能联网&#xff0c;也能开启搜索&#xff0c;还能执行代码和运…

三菱加工中心CNC编程G代码讲解

注意&#xff1a;在G之后没有接续数值指令中&#xff0c;在运转时将变成G00的动作。&#xff08;注1&#xff09;印有“*”记号表示初期状态应选择的指令码或被选择的指令码。印有“※”记号表示初期状态依参数所选定指令码或被选择的指令码。&#xff08;注2&#xff09;同一单…

如何用ChatGPT做咨询师,附Prompt

对基本问题研究得不深不透、得不到可靠的分析框架支持的情况下&#xff0c;仓促采取就事论事的应对措施 &#xff0c;由于未能触及事情的根本&#xff0c;往往非但不能获得预期的效果&#xff0c;相反可能引发新的矛盾。 ——吴敬琏&#xff08;著名经济学家&#xff0c;国务院…