曾经我还是懵懂的少年时,感觉
IDEA
世界第一(现在应该也是)php
是世界上最好的语言。我曾经使用过IDEA
WebStorm
Subline
Atom
, 最后还是停留在了vscode
。别问我为什么,就如同李忠盛的鬼迷心窍:有人问我你究竟是哪里好 这么多年我还忘不了 春风再美也比不上你的笑 没见过你的人不会明了,说了那么多一方面是因为no money
,一方面是确实感觉vs code + vim
适合自己。虽然最近fleet
出了预览版,但我目前使用下来看的话,还是打不过vs code
的。
vscode-icons
文件图标
Noctis
vs code
主题
前端我主要从事
vue
开发,目前在看一些react
,虽然vs code
自带了一些html特性,但要用起来顺手,还是需要一些额外的插件来实现的,我的vs
配置文件会在文末附上
Atuo Rename Tag
Auto Close Tag
Bracket Pair Colorizer 2
自动重命名,自动闭合,括号匹配这些插件已经成为了
vs code
的内置特性,不必再安装,目前我的vs
版本是1.72.2
Atuo Import
Path Intellisense
自动引入,会自动查找文件路径并添加
import
语句,这个功能吧,感觉有时候不错,但它是按照相对路径引入,要写绝对路径的话,需要自己更改。路径只能提示。
Better Comments
注释强调,我主要用来高亮显示
TODO
,有时候自己会忘掉一些空函数
JavaSript(ES6) code snippets
es6
提示
CSS Peek
DotENV
EditorConfig for VS Code
EsLint
Prettier
Sass
SCSS Formatter
代码格式化,
.env
文件识别,sass
提示等等
Git Graph
GitLens - Git supercharged
git
辅助
Vue Language Feature(Volar)
Vue VSCode Snippets TypeScript Vue Plugin(Volar)
Vue3
开发辅助插件
Translate Variable
VSCode Neovim
中英文翻译,变量起名难的时候可以中文变英文;
neovim
,我自己比较喜欢使用vim
按键绑定,所以基本上使用编辑器都会查看有没有vim
查看,‘Neovim’ 和vim
插件差不多,但是Neovim
可以使用neovim
的配置文件.
最后,附上我的vs code
配置文件
settings.json
{
"workbench.startupEditor": "newUntitledFile",
// "editor.formatOnType": true,
// "editor.formatOnSave": true,
// "terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"editor.accessibilityPageSize": 18,
"editor.fontSize": 16,
"sync.gist": "bf12b62d5049f783784084522e7dbd69",
"terminal.external.windowsExec": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\",
"editor.letterSpacing": 1,
"editor.lineHeight": 30,
"terminal.integrated.rendererType": "dom",
"workbench.activityBar.visible": true,
"workbench.iconTheme": "vscode-icons",
"editor.renderControlCharacters": false,
"go.formatTool": "goimports",
"files.autoSaveDelay": 10000,
"files.exclude": {
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true
},
"editor.fontFamily": "'Cartograph Mono CF','Cascadia Code',Consolas, 'MesloLGS NF','Courier New', monospace",
"editor.fontLigatures": true,
"editor.codeActionsOnSave": {},
"editor.fontWeight": "500",
"workbench.preferredDarkColorTheme": "Noctis Sereno",
"workbench.preferredHighContrastColorTheme": "Noctis Sereno",
"workbench.preferredLightColorTheme": "Noctis Sereno",
"terminal.integrated.fontSize": 16,
"terminal.integrated.fontWeight": "500",
"[dart]": {
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.rulers": [
80
],
"editor.selectionHighlight": false,
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.suggestSelection": "first",
"editor.tabCompletion": "onlySnippets",
"editor.wordBasedSuggestions": false
},
"terminal.explorerKind": "external",
"terminal.external.osxExec": "iTerm.app",
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"editor.renderWhitespace": "none",
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"leetcode.endpoint": "leetcode-cn",
"leetcode.workspaceFolder": "/Users/crackzj/.leetcode",
"vsicons.dontShowNewVersionMessage": true,
"javascript.updateImportsOnFileMove.enabled": "never",
"dart.previewLsp": true,
"html.format.contentUnformatted": "",
// "vetur.format.options.useTabs": true,
//vim
"vim.easymotion": true,
"vim.incsearch": true,
"vim.useSystemClipboard": true,
"vim.useCtrlKeys": false,
"vim.hlsearch": true,
"vim.statusBarColors.normal": ["#8FBCBB", "#434C5E"],
"vim.statusBarColors.insert": "#BF616A",
"vim.statusBarColors.visual": "#B48EAD",
"vim.statusBarColors.visualline": "#B48EAD",
"vim.statusBarColors.visualblock": "#A3BE8C",
"vim.statusBarColors.replace": "#D08770",
"vim.statusBarColors.commandlineinprogress": "#007ACC",
"vim.statusBarColors.searchinprogressmode": "#007ACC",
"vim.statusBarColors.easymotionmode": "#007ACC",
"vim.statusBarColors.easymotioninputmode": "#007ACC",
"vim.statusBarColors.surroundinputmode": "#007ACC",
"vim.insertModeKeyBindings": [
{
"before": ["j", "j"],
"after": ["" ]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["" , "d"],
"after": ["d", "d"]
},
{
"before": ["" ],
"commands": [":nohl"]
}
],
"vim.leader": "" ,
"vim.handleKeys": {
"" : false,
"" : false
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"workbench.editor.untitled.hint": "hidden",
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"go.toolsManagement.autoUpdate": true,
"vim.normalModeKeyBindings": [
{
"before": ["£"],
"after": ["#"]
},
// {
// "before": [":"],
// "commands": [
// "workbench.action.showCommands",
// ]
// },
{
"before": ["" , "m"],
"commands": [
"bookmarks.toggle"
]
},
{
"before": ["" , "b"],
"commands": [
"bookmarks.list"
]
},
{
"before":["" ],
"commands": [
":nohl",
]
},
{
"before": ["leader", "w"],
"commands": [
"workbench.action.files.save",
]
}
],
"workbench.colorCustomizations": {
"statusBar.background": "#8fbcbb",
"statusBar.noFolderBackground": "#8FBCBB",
"statusBar.debuggingBackground": "#8FBCBB",
"statusBar.foreground": "#434C5E",
"statusBar.debuggingForeground": "#434C5E"
},
"search.followSymlinks": false,
"editor.cursorStyle": "line",
"editor.insertSpaces": false,
"editor.lineNumbers": "on",
"editor.wordSeparators": "/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-",
"editor.wordWrap": "off",
"prettier.arrowParens": "avoid",
"prettier.useTabs": true,
"workbench.colorTheme": "Noctis Sereno",
"breadcrumbs.enabled": false,
"emmet.includeLanguages": {
"vue-html": "html",
"vue":"html",
"javascript":"html"
},
"emmet.excludeLanguages": [
],
"security.workspace.trust.untrustedFiles": "open",
"git.confirmSync": false,
"editor.guides.bracketPairs": "active",
"editor.bracketPairColorization.enabled": true,
"vim.cursorStylePerMode.normal": "block",
"vim.cursorStylePerMode.insert": "line",
"vim.highlightedyank.enable": true,
"vim.showMarksInGutter": true,
"vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.ABC",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/local/bin/im-select",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/local/bin/im-select {im}",
"editor.linkedEditing": true,
"vim.smartRelativeLine": true,
"diffEditor.ignoreTrimWhitespace": false,
"editor.guides.indentation": false,
"editor.unicodeHighlight.nonBasicASCII": false,
"gopls": {
"build.env": {
"GOOS": "js",
"GOARCH": "wasm"
},
"ui.semanticTokens": true
},
"vim.autoSwitchInputMethod.enable": true,
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.localEchoExcludePrograms": [
"vim",
"vi"
],
"emmet.triggerExpansionOnTab": true,
"emmet.showSuggestionsAsSnippets": true,
"editor.minimap.enabled": false,
"translateVariable.baiduAppid": "20220722001280219",
"translateVariable.baiduKey": "B65AGhhxKgnEMVU1LqVD",
"workbench.layoutControl.enabled": false,
"vim.shell": "/bin/zsh",
"vim.sneak": true,
"files.autoSave": "afterDelay",
"masmtasm.ASM.emulator": "dosbox",
"vim.enableNeovim": true,
"vim.neovimConfigPath": "~/.config/nvim/init.vim",
"vim.neovimPath": "/opt/homebrew/bin/nvim",
"vscode-neovim.highlightGroups.highlights": {
"Directory": "vim",
"IncSearch": {
"backgroundColor": "theme.editor.findMatchBackground",
"borderColor": "theme.editor.findMatchBorder"
},
"Search": {
"backgroundColor": "theme.editor.findMatchHighlightBackground",
"borderColor": "theme.editor.findMatchHighlightBorder"
},
"Visual": {
"backgroundColor": "theme.editor.selectionBackground"
},
"Conceal": "vim",
"Substitute": "vim"
},
"vscode-neovim.neovimExecutablePaths.darwin": "/opt/homebrew/bin/nvim",
}
user snippets
个人代码片段 vue.json
{
"vue:js" :{
"prefix": "vue",
"body": [
"",
"",
"",
"",
"",
""
],
"description": "vue3 setup javascript"
},
"vue:ts" :{
"prefix": "vue",
"body": [
"",
"",
"",
"",
"",
""
],
"description": "vue3 setup typescript"
}
}
keybindings.json
// Place your key bindings in this file to override the defaultsauto[]
[
{
"key": "cmd+h",
"command": "workbench.action.previousEditor"
},
{
"key": "shift+cmd+[",
"command": "-workbench.action.previousEditor"
},
{
"key": "cmd+l",
"command": "workbench.action.nextEditor"
},
{
"key": "shift+cmd+]",
"command": "-workbench.action.nextEditor"
},
//neovim
//mapping jj
{
"command": "vscode-neovim.compositeEscape1",
"key": "j",
"when": "neovim.mode == insert && editorTextFocus",
"args": "j"
},
//neovm end
]