切换至深色主题
VSCode编辑器
重要通知
Help -> Toggle Developer Tools,即可像浏览器一样打开VSCode的代码查看功能。
基本概况
保持所有开发者安装了相同的插件和相同的配置,保持开发环境一致性。
- 官网:https://code.visualstudio.com/
- GitHub:<>
用户区配置
- Windows %APPDATA%\Code\User\settings.json
- macOS $HOME/Library/Application\ Support/Code/User/settings.json
- Linux $HOME/.config/Code/User/settings.json
工作区配置
├─ .vscode
│ ├─ extensions.json
│ └─ settings.json推荐默认插件
基础插件
Luna Paint 图片编辑器
Markdown emoji
gitlink
icon fonts
Multiple clipboards
Path intellisense
Project manager
Document This 文档注释生成
EditorConfig for VS Code editorconfig支持
ESLint eslint支持
GitLens — Git supercharged git管理
Import Cost import模块大小显示
npm Intellisense npm模块智能补全
Prettier - Code formatter prettier支持
stylelint stylelint支持
VSCode Great Icons 文件图标代码运行:Code Runner
GitLens — Git supercharged
代码提交者历史跟踪插件
HTML/CSS/JavaScript 自动补全:HTML/CSS/JavaScript Snippets
Prettier - Code formatter
HTML CSS Support
ESLint
CSScomb
CSS属性自动排序
{
// CSS属性自动排序
"csscomb.formatOnSave": true
}JSON Organizer
Vue生态技术栈插件
Vue3
- Vue Language Features (Volar)
React生态技术栈插件
插件列表
- GitHub Copilot
GitHub Copilot 扩展是一个 AI 对程序员工具,可帮助您更快、更智能地编写代码。可以使用 VS Code 中的 Copilot 扩展来生成代码,从它生成的代码中学习,甚至配置编辑器。
extensions.json
扩展VSCode编辑器,增加插件,在项目根目录创建.vscode目录,并且在该目录下创建extensions.json文件
推荐配置
{
"recommendations": [
"Vue.volar",
"Vue.vscode-typescript-vue-plugin",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"eamodio.gitlens"
]
}配置文档
{
"recommendations": []
}settings.json
配置VScode编辑器选项,在项目根目录创建.vscode目录,并且在该目录下创建settings.json文件。
设置优先级
不同的设置范围可以在多个级别覆盖配置。在以下列表中,更高范围将覆盖早期范围。
- 默认设置:此范围表示默认的未配置设置值。
- 用户设置:全局应用于所有 VS Code 实例。
- 远程设置:应用于用户打开的远程计算机。
- 工作区设置:应用于打开的文件夹或工作区。
- 工作区文件夹设置:应用于多根工作区的特定文件夹。
- 特定于语言的默认设置:这些是特定于语言的默认值,可由扩展提供。
- 特定于语言的用户设置:与用户设置相同,但特定于语言。
- 特定于语言的远程设置:与远程设置相同,但特定于语言。
- 特定于语言的工作区设置:与工作区设置相同,但特定于语言。
- 特定于语言的工作区文件夹设置:与工作区文件夹设置相同,但特定于语言。
- 策略设置:由系统管理员设置,这些值始终覆盖其他设置值。
推荐配置
{
"editor.fontSize": 12,
"editor.wordWrap": "on",
"editor.tabSize": 2,
"eslint.enable": true,
"eslint.debug": true,
"eslint.run": "onSave",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.autoSave": "onFocusChange",
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll.stylelint": true
},
"[html]": {},
"[css]": {},
"[javascript]": {
"editor.showUnused": false // 在 JavaScript 中禁用未使用代码
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.wordWrap": "on",
"editor.formatOnSave": false
},
"css.validate": true,
"less.validate": true,
"scss.validate": true,
"workbench.colorCustomizations": {},
// 在使用搜索功能时,将这些文件夹/文件排除在外
"search.exclude": {
"**/logs": true,
"**/node_modules": true,
"**/bower_components": true,
"cli/target/**": true,
".build/**": true,
"out/**": true,
"out-build/**": true,
"out-vscode/**": true,
"i18n/**": true,
"extensions/**/dist/**": true,
"extensions/**/out/**": true,
"test/smoke/out/**": true,
"test/automation/out/**": true,
"test/integration/browser/out/**": true,
"src/vs/base/test/common/filters.perf.data.js": true,
"src/vs/base/test/node/uri.test.data.txt": true,
"src/vs/workbench/api/test/browser/extHostDocumentData.test.perf-data.ts": true,
"src/vs/editor/test/node/diffing/fixtures/**": true
},
// 这些文件将不会显示在工作空间中
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/node_modules": true,
".git": true,
".build": true,
".profile-oss": true,
".vscode-test": true,
"cli/target": true,
"build/**/*.js": {
"when": "$(basename).ts" // ts编译后生成的js文件将不会显示在工作空中
}
}
}配置文档
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.fontSize": 12, // 字体
"editor.wordWrap": "on", // 换行
"editor.tabSize": 2, // Tab空格
"eslint.enable": true,
"eslint.debug": true,
"eslint.run": "onSave",
"files.autoSave": "onFocusChange", // 失去焦点后自动保存,"afterDelay"
"npm.packageManager": "yarn",
// 保存时的代码操作
"editor.formatOnSave": true, // 保存时自动格式化
"editor.formatOnPaste": true,
"editor.codeActionsOnSave": {
"source.fixAll": true, // 保存时自动修复在一轮中计算所有可能的修复(对于包括 ESLint 在内的所有提供程序)
"source.fixAll.eslint": true, // 自动修复仅适用于 ESLint
"source.fixAll.stylelint": true
},
/**
* 文件类型自定义编辑器
* 例如html、typescript、markdown
*/
"[html]": {},
"[css]": {},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.formatOnSave": true,
"editor.showUnused": false // 在 JavaScript 中禁用未使用代码
},
"[vue]": {
"editor.defaultFormatter": "Vue.volar",
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.wordWrap": "on",
"editor.formatOnSave": false
},
// 校验
"css.validate": true,
"less.validate": true,
"scss.validate": true,
// 工作空间设置
"workbench.colorCustomizations": {},
// 在使用搜索功能时,将这些文件夹/文件排除在外
"search.exclude": {
"**/logs": true,
"**/node_modules": true,
"**/bower_components": true,
"cli/target/**": true,
".build/**": true,
"out/**": true,
"out-build/**": true,
"out-vscode/**": true,
"i18n/**": true,
"extensions/**/dist/**": true,
"extensions/**/out/**": true,
"test/smoke/out/**": true,
"test/automation/out/**": true,
"test/integration/browser/out/**": true,
"src/vs/base/test/common/filters.perf.data.js": true,
"src/vs/base/test/node/uri.test.data.txt": true,
"src/vs/workbench/api/test/browser/extHostDocumentData.test.perf-data.ts": true,
"src/vs/editor/test/node/diffing/fixtures/**": true,
},
// 这些文件将不会显示在工作空间中
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/node_modules": true,
".git": true,
".build": true,
".profile-oss": true,
".vscode-test": true,
"cli/target": true,
"build/**/*.js": {
"when": "$(basename).ts" // ts编译后生成的js文件将不会显示在工作空中
}
}
}参考文档
{
// 核心:保存文件自动格式化
"editor.formatOnSave": true,
// 粘贴代码自动格式化(可选)
"editor.formatOnPaste": true,
// 默认全局格式化器为Prettier
"editor.defaultFormatter": "esbenp.prettier-vscode",
// 保存时自动修复ESLint可修复的语法/规范错误(TS/JS必备)
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
// 给不同文件类型单独指定格式化器,避免失效
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// Prettier全局规则(可按需修改)
"prettier.singleQuote": true, // 使用单引号
"prettier.tabWidth": 2, // 缩进2空格
"prettier.trailingComma": "es5", // 末尾逗号
"prettier.semi": true, // 语句末尾加分号
"prettier.printWidth": 100, // 单行最大长度
// 可选:失去焦点自动保存文件
"files.autoSave": "onFocusChange"
}.editorconfig
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = truepackage.json
{
"scripts": {
"dev": "vite",
"build-": "vite build",
"build": "run-p type-check build-only",
"preview": "vite preview",
"test:unit": "vitest --environment jsdom --root src/",
"build-only": "vite build",
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
}
}Code Server安装配置与部署使用
- 在线实时编辑版:https://vscode.dev/
- GitHub: https://github.com/microsoft/vscode
- 官网:https://code.visualstudio.com/
- GitHub:https://github.com/cdr/code-server
- 版本:https://github.com/cdr/code-server/releases
知识技巧
- 查看源码:Help - Toggle Developer Tools
安装配置
基础安装
# wget下载很慢,建议本地下载后再上传至服务器
# 下载
wget https://github.com/coder/code-server/releases/download/v4.118.0/code-server-4.118.0-linux-amd64.tar.gz
# 上传
put D:/Download/code-server-4.118.0-linux-amd64.tar.gz /home/download
put /Users/dey/Downloads/code-server-4.118.0-linux-amd64.tar.gz /home/download
# 解压
tar zxvf code-server-4.118.0-linux-amd64.tar.gz
mv code-server-4.118.0-linux-amd64 /home/code-server-4.118.0-linux-amd64
cd /home/code-server-4.118.0-linux-amd64/bin
# 任意IP都可以访问,注意:通过https://x.x.x.x访问,需要执行 ./code-server --cert --port 8011 --host 0.0.0.0
./code-server --port 8011 --host 0.0.0.0
# 云IDE默认使用https进行连接
> 如果不启用 https 时,由于安全因素,会导致无法启用剪贴板密码配置
# 第一次安装配置后,打开网站,需要设置密码,具体信息如下
Welcome to code-server
Please log in below. Check the config file at ~/.config/code-server/config.yaml for the password.
密码信息展示:auth: password | password: a5b921cfe8583956b4390d2d
# 修改密码,找到密码配置文件
vim ~/.config/code-server/config.yaml | password: Eshen_1245_ysun
/root/.config/code-server/config.yaml查看指令具体功能
./code-server --help
配置域名
# 解决websocket的1006超时问题:利用Upgrade协议头机制将连接从HTTP连接升级到WebSocket连接,在nginx配置中修改
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
location / {
# proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
}设置code-server在后台运行
> yum install -y screen
# 步骤一:code-server为自定义命名,打开了一个新screen窗口,然后进行步骤二
> screen -S code-server
> cd /home/code-server-4.118.0-linux-amd64/bin
步骤二:开启code-server服务
> ./code-server --cert --port 8011 --host 0.0.0.0
# 最后按组合键:ctrl + a + z退出即可 // 一定先按Ctrl + A,然后在按住前两者的基础上按下Zscreen -S vscode 参数说明
> -A # 将所有的视窗都调整为目前终端机的大小。
> -d # <作业名称> 将指定的screen作业离线。
> -h # <行数> 指定视窗的缓冲区行数。
> -m # 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
> -r # <作业名称> 恢复离线的screen作业。
> -R # 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
> -s # 指定建立新视窗时,所要执行的shell。
> -S # <作业名称> 指定screen作业的名称。
> -v # 显示版本信息。
> -x # 恢复之前离线的screen作业。
> -ls或--list # 显示目前所有的screen作业。
> -wipe # 检查目前所有的screen作业,并删除已经无法使用的screen作业。常用screen指令
screen -S session_name # 新建一个叫session_name的session
screen -ls(或者screen -list) # 列出当前所有的session
screen -r session_name # 回到session_name这个session
screen -d session_name # 远程detach某个session
screen -d -r session_name # 结束当前session并回到session_name这个session
screen -X -S 19520 quit # 删除在每个screen session 下,命令都以 ctrl+a、ctrl-a,常用的几个操作如下:
> ctrl-a x # 锁住当前的shell window,需用用户密码解锁
> ctrl-a d # detach,暂时离开当前session,将当前 screen session 转到后台执行,并会返回没进 screen 时的状态,此时在 screen session 里,每个shell client内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响
> ctrl-a z # 把当前session放到后台执行,用 shell 的 fg 命令则可回去。