文章目录
插件安装
- C/C++
- Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
- Code Runner
- Competitive Programming Helper (cph)
- Error Lens
- One Dark Pro
- Remote - SSH
- Remote - SSH: Editing Configuration Files
- VSCode Neovim
插件设置
- C/C++
// @ext:ms-vscode.cpptools
// C_Cpp: Clang_format_fallback Style
{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }
// C_Cpp: Clang_format_style
{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }
// C_Cpp › Doxygen: Generated Style
/**
- Code Runner
// @ext:formulahendry.code-runner
// Code-runner: Run In Terminal
勾选
// Code-runner: Save All Files Before Run
勾选
// Code-runner: Save File Before Run
勾选
- Competitive Programming Helper (cph)
// @ext:DivyanshuAgrawal.competitive-programming-helper
// Cph › General: Default Language
cpp
- VSCode Neovim
// @ext:asvetliakov.vscode-neovim
// Vscode-neovim › Neovim Executable Paths: Win32
C:\Program Files\Neovim\bin\nvim.exe
// Vscode-neovim: Ctrl Keys For Normal Mode
"vscode-neovim.ctrlKeysForNormalMode": [
"a",
"b",
"c",
"d",
"e",
"f",
"h",
"i",
"l",
"m",
"o",
"r",
"u",
"v",
"x",
"y",
"z",
"/",
"]",
"right",
"left",
"up",
"down",
"backspace",
"delete"
]
推荐设置
1. 控制具有未保存更改的编辑器的 自动保存
// Files: Auto Save
"files.autoSave": "afterDelay"
2. 启用自动猜测编码
用于控制编辑器在打开文件时是否尝试自动猜测文件的编码格式。如果将该选项设置为 true,VSCode 将会在打开文件时尝试根据文件内容来猜测编码格式,以便正确地显示文本内容。
// Files: Auto Guess Encoding
"files.autoGuessEncoding": true
3. 平滑滚动和光标闪烁的设置
可以提高编辑器和工作台的视觉效果,使得滚动和光标闪烁更加流畅和舒适。
// Editor: Smooth Scrolling
"editor.smoothScrolling": true,
// Workbench › List: Smooth Scrolling
"workbench.list.smoothScrolling": true,
// Editor: Cursor Blinking
"editor.cursorBlinking": "smooth",
// Editor: Cursor Smooth Caret Animation
"editor.cursorSmoothCaretAnimation": "on"
4. 自动格式化的设置
通过启用这两个选项,你可以确保在粘贴内容或保存文件时,代码会自动按照规定的风格进行格式化,从而提高代码的可读性和一致性
// Editor: Format On Paste
"editor.formatOnPaste": true,
// Editor: Format On Save
"editor.formatOnSave": true
5. 自动换行功能
这样做有助于提高代码的可读性,特别是当你处理较长的行时,自动换行可以使得代码更加清晰,而不需要不断地水平滚动来查看完整的行内容
// Editor: Word Wrap
"editor.wordWrap": "on"
6. 按下回车键时如何接受代码建议的行为
按下回车键会根据上下文智能地接受建议。具体来说,如果当前正在编辑的建议与已输入的内容匹配,则按下回车键将接受建议。如果没有建议,或者当前建议与已输入的内容不匹配,则按下回车键会插入一个换行符。
这个设置可以帮助加快编码过程,特别是在使用自动完成功能时,通过智能地处理回车键的行为,使得接受建议和输入换行之间的切换更加流畅和高效
// Editor: Accept Suggestion On Enter
"editor.acceptSuggestionOnEnter": "smart"
7. 建议列表中如何预先选择建议
这意味着当你触发代码建议列表时,编辑器会优先选择最近使用过的建议项作为默认选项。这样做的目的是为了更快地访问到你最近常用的建议,从而提高编码效率。
// Editor: Suggest Selection
"editor.suggestSelection": "recentlyUsed"
8. 启用自定义对话框样式
通过启用自定义对话框样式,你可以自定义对话框窗口的外观,以满足你的应用程序或个人喜好的需求。这使得对话框能够更好地与你的应用程序整体风格相匹配,或者提供一种更加独特的用户体验
// Window: Dialog Style
"window.dialogStyle": "custom"
9. 控制着是否在编辑器的概览标尺中显示断点标记
当这个设置为 true 时,如果你在代码中设置了断点,那么在编辑器的侧边概览标尺中会显示相应的断点标记,以便你在代码中快速地查看断点的位置。这对于调试代码非常有用,因为它使得你可以轻松地浏览和导航到断点所在的位置,而不必依赖于纯文本的代码视图。
这个设置可以帮助提高调试过程的效率,特别是在处理大型代码文件时,通过在概览标尺中显示断点标记,你可以更快地了解断点的位置分布,从而更轻松地进行调试。
// Debug: Show Breakpoints In Overview Ruler
"debug.showBreakpointsInOverviewRuler": true
10. 生成 Doxygen 注释时所使用的风格
例如,如果你在 C++ 代码中使用了 Doxygen 插件来生成文档注释,当你触发生成注释的命令时,生成的注释将会以 /** ... */
的格式呈现在代码中。
这种风格的 Doxygen 注释是常见的,通常用于生成代码文档和说明。
// C_Cpp › Doxygen: Generated Style
"C_Cpp.doxygen.generatedStyle": "/**"
10. 关闭本地历史记录功能
表示禁用本地历史记录功能。本地历史记录功能会自动保存你对文件的更改历史,允许你在需要时回溯到以前的版本。禁用此功能后,Visual Studio Code 将不再保存文件的历史更改,因此你将无法使用本地历史记录功能来回溯文件的更改。
这个设置通常用于根据个人偏好或者特定的工作流程来控制是否需要使用本地历史记录功能。
// Workbench › Local History: Enabled
"workbench.localHistory.enabled": false
11. 设置字体族
在这个设置中,字体族由多个字体名称组成,按照优先级顺序排列。如果操作系统中安装了指定的字体,则编辑器会使用第一个可用的字体。如果第一个字体不可用,则会依次尝试后续的字体。
在这个例子中,字体族包括了三个字体名称:首选使用 JetBrains Mono 字体,如果系统中没有安装这个字体,则尝试使用 Courier New 字体,如果还没有,则使用 monospace 通用等宽字体。
// Editor: Font Family
"editor.fontFamily": "JetBrains Mono, 'Courier New', monospace",
12. 显示匹配的括号对
在编辑器中显示活跃(当前正在匹配的)括号对的指示线。当你在代码中选中一个括号时,它会突出显示与之匹配的另一个括号,并在它们之间显示一条指示线,以帮助你更容易地理解括号的配对关系。
// Editor › Guides: Bracket Pairs
"editor.guides.bracketPairs": "active",
13. 新建文件时的默认语言类型
使用当前活动编辑器的语言作为新建文件的默认语言。换句话说,如果你当前打开的文件是Python文件,那么新建的文件默认语言就会是Python;如果当前是JavaScript文件,那么新建的文件默认语言就会是JavaScript,以此类推。这个配置能够让你更方便地与你正在编辑的文件相匹配。
// Files: Default Language
"files.defaultLanguage": "${activeEditorLanguage}",
13. 启用字体连字功能
当设置为 true 时,如果你使用的字体支持连字,那么一些符号序列会以特定方式显示,从而形成更美观和连贯的图形。。
// Editor: Font Ligatures
"editor.fontLigatures": true,
14. 排除指定文件或文件夹的配置
在这个例子中,“.vscode” 文件夹会被排除在编辑器的资源管理器中,也就是说不会显示在项目中。
// Files: Exclude
"files.exclude": {
".vscode": true
},
本人的配置
setting.json
{
// 关闭本地历史记录功能
"workbench.localHistory.enabled": false,
// LICENSE文件设置
"files.readonlyInclude": {
"LICENSE": true,
},
"files.associations": {
"LICENSE": "plaintext"
},
// 自动保存
"files.autoSave": "afterDelay",
// 自动格式化的设置
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
// 字体设置
"editor.fontSize": 18,
"editor.fontFamily": "JetBrains Mono, 'Courier New', monospace",
"editor.fontLigatures": true,
// 主题设置
"workbench.colorTheme": "One Dark Pro",
// 启用自动猜测编码
"files.autoGuessEncoding": true,
// 平滑滚动和光标闪烁的设置
"editor.smoothScrolling": true,
"workbench.list.smoothScrolling": true,
"editor.cursorBlinking": "smooth",
"editor.cursorSmoothCaretAnimation": "on",
// 自动换行功能(但还是同一行, 视觉上效果)
"editor.wordWrap": "on",
// 按下回车键时如何接受代码建议的行为
"editor.acceptSuggestionOnEnter": "smart",
// 建议列表中如何预先选择建议
"editor.suggestSelection": "recentlyUsed",
// 启用自定义对话框样式
"window.dialogStyle": "custom",
// 控制着是否在编辑器的概览标尺中显示断点标记
"debug.showBreakpointsInOverviewRuler": true,
// 显示匹配的括号对
"editor.guides.bracketPairs": "active",
// 新建文件时的默认语言类型
"files.defaultLanguage": "${activeEditorLanguage}",
// 禁用推荐安装扩展的功能
"extensions.ignoreRecommendations": true,
// 控制编辑器在键入一行后是否自动格式化该行。
"editor.formatOnType": true,
// 排除指定文件或文件夹的配置
"files.exclude": {
".vscode": true
},
// 设置行号的显示格式
"editor.lineNumbers": "relative",
// 设置菜单栏的可见性
"window.menuBarVisibility": "compact",
// 设置活动栏(Activity Bar)的位置
"workbench.activityBar.location": "bottom",
// 禁止在资源管理器中删除文件时显示确认提示
"explorer.confirmDelete": false,
// NeoVim 设置
"extensions.experimental.affinity": {
"asvetliakov.vscode-neovim": 1
},
"vscode-neovim.neovimInitVimPaths.win32": "C:\\Users\\admin\\.config\\nvim\\init.vim",
"vscode-neovim.neovimExecutablePaths.win32": "C:\\Program Files\\Neovim\\bin\\nvim.exe",
"vscode-neovim.ctrlKeysForNormalMode": [
"a",
"b",
"c",
"d",
"e",
"f",
"h",
"i",
"l",
"m",
"o",
"r",
"u",
"v",
"x",
"y",
"z",
"/",
"]",
"right",
"left",
"up",
"down",
"backspace",
"delete"
],
"vscode-neovim.compositeKeys": {
"jk": {
"command": "vscode-neovim.lua",
"args": [
"vim.api.nvim_input('<ESC>')\nrequire('vscode-neovim').action('workbench.action.files.save')"
]
},
"jj": {
"command": "vscode-neovim.escape"
}
},
// C/C++ 插件设置
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }",
"C_Cpp.clang_format_style": "{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }",
"C_Cpp.doxygen.generatedStyle": "/**",
// Competitive Programming Helper 设置
"cph.general.defaultLanguage": "cpp",
// CMake 设置
"cmake.cmakePath": "C:\\Qt\\Tools\\CMake_64\\bin\\cmake.exe",
"cmake.showOptionsMovedNotification": false,
"cmake.configureOnOpen": true,
// SSH 设置
"remote.SSH.remotePlatform": {
"Debian": "linux"
},
}
keybindings.json
// 将键绑定放在此文件中以覆盖默认值
[
// 任务:运行生成任务
{
"key": "alt+b",
"command": "workbench.action.tasks.build",
"when": "taskCommandsRegistered"
},
{
"key": "ctrl+shift+b",
"command": "-workbench.action.tasks.build",
"when": "taskCommandsRegistered"
},
// 查看:切换主侧栏可见性
{
"key": "ctrl+shift+b",
"command": "workbench.action.toggleSidebarVisibility"
},
{
"key": "ctrl+b",
"command": "-workbench.action.toggleSidebarVisibility"
}
]
setting.json
{
// 关闭本地历史记录功能
"workbench.localHistory.enabled": false,
// LICENSE文件设置
"files.readonlyInclude": {
"LICENSE": true,
},
"files.associations": {
"LICENSE": "plaintext"
},
// 自动保存
"files.autoSave": "afterDelay",
// 自动格式化的设置
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
// 字体设置
"editor.fontSize": 18,
"editor.fontFamily": "JetBrains Mono, 'Courier New', monospace",
"editor.fontLigatures": true,
// 启用自动猜测编码
"files.autoGuessEncoding": true,
// 平滑滚动和光标闪烁的设置
"editor.smoothScrolling": true,
"workbench.list.smoothScrolling": true,
"editor.cursorBlinking": "smooth",
"editor.cursorSmoothCaretAnimation": "on",
// 自动换行功能(但还是同一行, 视觉上效果)
"editor.wordWrap": "on",
// 按下回车键时如何接受代码建议的行为
"editor.acceptSuggestionOnEnter": "smart",
// 建议列表中如何预先选择建议
"editor.suggestSelection": "recentlyUsed",
// 启用自定义对话框样式
"window.dialogStyle": "custom",
// 控制着是否在编辑器的概览标尺中显示断点标记
"debug.showBreakpointsInOverviewRuler": true,
// 显示匹配的括号对
"editor.guides.bracketPairs": "active",
// 新建文件时的默认语言类型
"files.defaultLanguage": "${activeEditorLanguage}",
// 禁用推荐安装扩展的功能
"extensions.ignoreRecommendations": true,
// 控制编辑器在键入一行后是否自动格式化该行。
"editor.formatOnType": true,
// 排除指定文件或文件夹的配置
"files.exclude": {
".vscode": true
},
// 设置行号的显示格式
"editor.lineNumbers": "relative",
// 设置菜单栏的可见性
"window.menuBarVisibility": "compact",
// 设置活动栏(Activity Bar)的位置
"workbench.activityBar.location": "bottom",
// 禁止在资源管理器中删除文件时显示确认提示
"explorer.confirmDelete": false,
// 关闭欢迎页
"workbench.startupEditor": "none",
// 自带终端
"terminal.integrated.defaultProfile.windows": "Git Bash",
"terminal.integrated.profiles.windows": {
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe (migrated)": {
"path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"args": [
"--login",
"-i"
]
}
},
// 移除文件末尾的空白行
"files.trimFinalNewlines": true,
// 设置主题
"workbench.colorTheme": "One Dark Pro",
// NeoVim 插件设置
"extensions.experimental.affinity": {
"asvetliakov.vscode-neovim": 1
},
"vscode-neovim.neovimExecutablePaths.win32": "C:\\Program Files\\Neovim\\bin\\nvim.exe",
"vscode-neovim.neovimInitVimPaths.win32": "C:\\Users\\admin\\.config\\nvim\\init.vim",
"vscode-neovim.ctrlKeysForNormalMode": [
"a",
"b",
"c",
"d",
"e",
"f",
"h",
"i",
"l",
"m",
"o",
"r",
"u",
"v",
"x",
"y",
"z",
"/",
"]",
"right",
"left",
"up",
"down",
"backspace",
"delete"
],
// C/C++ 插件设置
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }",
"C_Cpp.clang_format_style": "{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }",
"C_Cpp.doxygen.generatedStyle": "/**",
// Competitive Programming Helper 设置
"cph.general.defaultLanguage": "cpp",
// CMake 设置
"cmake.cmakePath": "C:\\Qt\\Tools\\CMake_64\\bin\\cmake.exe",
"cmake.configureOnOpen": true,
"cmake.showOptionsMovedNotification": false,
// dash 设置
"dash.languageIdToDocsetMap": {
"cmake": [
"cmake"
],
"cpp": [
"cpp",
"qt",
"c"
],
"markdown": [
"markdown"
],
"sql": [
"sqlite",
],
},
}
```
keyboard.json
```json
// 将键绑定放在此文件中以覆盖默认值
[
// 任务:运行生成任务
{
"key": "alt+b",
"command": "workbench.action.tasks.build",
"when": "taskCommandsRegistered"
},
{
"key": "ctrl+shift+b",
"command": "-workbench.action.tasks.build",
"when": "taskCommandsRegistered"
},
// 查看:切换主侧栏可见性
{
"key": "ctrl+shift+b",
"command": "workbench.action.toggleSidebarVisibility"
},
{
"key": "ctrl+b",
"command": "-workbench.action.toggleSidebarVisibility"
},
// dash 按键设置
// search selection in corresponding docset
{
"key": "ctrl+h",
"command": "extension.dash.specific"
},
// search in all docset
{
"key": "ctrl+alt+h",
"command": "extension.dash.all"
},
// open dash with current file's docset open
{
"key": "ctrl+shift+h",
"command": "extension.dash.emptySyntax"
},
// open dash with custom string and current file's docset
{
"key": "your_shortcut",
"command": "extension.dash.searchSyntax"
}
]
```