Skip to content

Instantly share code, notes, and snippets.

@h2m730131
Last active August 1, 2025 02:50
Show Gist options
  • Save h2m730131/b1a014a0d350230660a0675fbac87b2c to your computer and use it in GitHub Desktop.
Save h2m730131/b1a014a0d350230660a0675fbac87b2c to your computer and use it in GitHub Desktop.
Visual Studio Code + VSCodeVim
// Place your key bindings in this file to override the defaults
[
// 修改 User Settings:
// "editor.suggest.insertMode": "insert",
//
// 修改 Keyboard Shortcuts:
// * [suggest insert mode: enter for insert, tab for replace · Issue #112613 · microsoft/vscode](https://github.com/microsoft/vscode/issues/112613#issuecomment-750755396)
{
"key": "enter",
"command": "acceptSelectedSuggestion", // to insert
"when": "suggestWidgetVisible && textInputFocus"
},
{
"key": "tab",
"command": "acceptAlternativeSelectedSuggestion", // to replace
"when": "suggestWidgetVisible && textInputFocus"
},
//
// 在 workbench.list, 按下 Escape 鍵回到 Active Editor
{
"key": "escape",
"command": "workbench.action.focusActiveEditorGroup",
"when": "!listHasSelectionOrFocus && listFocus && !inputFocus"
},
//
// 在 Terminal Panel, cd 到當前檔案所在的資料夾
{
"key": "ctrl+shift+t",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000D"
},
"when": "terminalFocus"
},
//
// 在 Terminal Panel, 切換到上 / 下個 Terminal
{
"key": "ctrl+tab",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "ctrl+shift+tab",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
},
//
// 在 Terminal Panel, 刪除游標右側的所有文字
{
"key": "ctrl+k",
"command": "deleteAllRight",
"when": "terminalFocus"
},
//
// 在 Terminal Panel, 取消 Terminal: Focus Find, ctrl+f 用於移動游標向右一個 character
{
"key": "ctrl+f",
"command": "-workbench.action.terminal.focusFind",
"when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocusInAny && terminalHasBeenCreated || terminalFocusInAny && terminalProcessSupported"
},
//
// 在 Terminal Panel, 取消 Go to File..., ctrl+e 用於移動游標到行尾
{
"key": "ctrl+e",
"command": "workbench.action.quickOpen",
"when": "!terminalFocus"
},
{
"key": "ctrl+e",
"command": "-workbench.action.quickOpen"
},
]
// Windows: %APPDATA%\Code\User\settings.json
// macOS: $HOME/Library/Application\ Support/Code/User/settings.json
// Linux: $HOME/.config/Code/User/settings.json
{
"workbench.colorTheme": "Default Dark Modern",
"window.commandCenter": true,
"workbench.navigationControl.enabled": false,
//
"workbench.sideBar.location": "right",
"workbench.panel.showLabels": false,
"workbench.secondarySideBar.showLabels": false,
"editor.minimap.enabled": false,
"workbench.iconTheme": "vscode-icons",
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": true,
"editor.formatOnSave": true,
//
// sticky scroll
"workbench.tree.enableStickyScroll": true,
"editor.stickyScroll.enabled": true,
"editor.stickyScroll.defaultModel": "foldingProviderModel",
//
// font
"editor.fontFamily": "'JetBrainsMono Nerd Font', 'JetBrains Mono', Consolas, 'Courier New', monospace",
"editor.fontLigatures": true,
"editor.fontSize": 13,
"editor.lineHeight": 20,
//
// git
"git.blame.editorDecoration.enabled": true,
"git.blame.statusBarItem.enabled": false,
//
// ## Github Copilot
// * [doggy8088/github-copilot-configs: Will 保哥整理的最佳 GitHub Copilot 設定](https://github.com/doggy8088/github-copilot-configs)
"github.copilot.enable": {
"*": true,
"plaintext": false,
"markdown": true,
"scminput": false
},
"chat.commandCenter.enabled": true,
"github.copilot.selectedCompletionModel": "gpt-4o-copilot",
"github.copilot.editor.enableCodeActions": true,
"github.copilot.renameSuggestions.triggerAutomatically": true,
"workbench.commandPalette.experimental.askChatLocation": "chatView",
"github.copilot.chat.search.semanticTextResults": true,
//
// ### Code Completions
"editor.inlineSuggest.showToolbar": "always",
"editor.inlineSuggest.syntaxHighlightingEnabled": true,
//
// ### Next Edit Suggestions (NES)
"github.copilot.nextEditSuggestions.enabled": true,
"editor.inlineSuggest.edits.allowCodeShifting": "always",
"editor.inlineSuggest.edits.renderSideBySide": "auto",
"editor.inlineSuggest.edits.showCollapsed": false,
//
// ## Github Copilot Chat
"github.copilot.chat.languageContext.typescript.enabled": true,
"github.copilot.chat.languageContext.fix.typescript.enabled": true,
"github.copilot.chat.languageContext.inline.typescript.enabled": true,
"github.copilot.chat.followUps": "always",
// "github.copilot.chat.localeOverride": "zh-TW",
"github.copilot.chat.useProjectTemplates": true, // /new
"github.copilot.chat.scopeSelection": true, // /explain
"chat.detectParticipant.enabled": false, // 是否自動偵測, 不需要透過 `@` 指定
//
// ### Debugging
"github.copilot.chat.startDebugging.enabled": true, // /startDebugging
//
// ### Testing
"github.copilot.chat.setupTests.enabled": true, // /setupTests
"github.copilot.chat.generateTests.codeLens": true,
//
// ### Inline Chat
"github.copilot.chat.editor.temporalContext.enabled": true,
// "inlineChat.holdToSpeech": true,
"inlineChat.finishOnType": true,
"inlineChat.accessibleDiffView": "on",
//
// ### Agent
"chat.agent.enabled": true,
"chat.agent.maxRequests": 50,
"github.copilot.chat.agent.thinkingTool": true,
"github.copilot.chat.codesearch.enabled": true,
"github.copilot.chat.newWorkspaceCreation.enabled": true,
"github.copilot.chat.agent.runTasks": true,
//
// ### MCP
"chat.mcp.enabled": true,
// "chat.mcp.discovery.enabled": {
// "claude-desktop": false,
// "windsurf": false,
// "cursor-global": false,
// "cursor-workspace": false
// },
// "mcp": {
// "servers": {}
// },
//
// ### GitHub Copilot Edit
"github.copilot.chat.edits.suggestRelatedFilesForTests": true,
"github.copilot.chat.edits.suggestRelatedFilesFromGitHistory": true,
"chat.editing.confirmEditRequestRemoval": true,
"chat.editing.confirmEditRequestRetry": true,
//
// ### Custom instructions
"chat.promptFiles": true,
// "chat.promptFilesLocations": {
// ".github/prompts": true,
// "/Users/vscode/repos/prompts": true
// },
"github.copilot.chat.testGeneration.instructions": [
{
"file": ".copilot-test-instructions.md"
},
{
"text": "Always try uniting related tests in a suite."
}
],
"github.copilot.chat.codeGeneration.useInstructionFiles": true,
// "github.copilot.chat.codeGeneration.instructions": [
// {
// "text": "Always response in #zh-tw."
// },
// {
// "text": "When outputing any text, use the following translation mappings: create = 建立, object = 物件, queue = 佇列, stack = 堆疊, information = 資訊, invocation = 呼叫, code = 程式碼, running = 執行, library = 函式庫, schematics = 原理圖, building = 建構, Setting up = 設定, package = 套件, video = 影片, for loop = for 迴圈, class = 類別, Concurrency = 平行處理, Transaction = 交易, Transactional = 交易式, Code Snippet = 程式碼片段, Code Generation = 程式碼產生器, Any Class = 任意類別, Scalability = 延展性, Dependency Package = 相依套件, Dependency Injection = 相依性注入, Reserved Keywords = 保留字, Metadata = Metadata, Clone = 複製, Memory = 記憶體, Built-in = 內建, Global = 全域, Compatibility = 相容性, Function = 函式, Refresh = 重新整理, document = 文件, example = 範例, demo = 展示, quality = 品質, tutorial = 指南, recipes = 秘訣, byte = 位元組, bit = 位元"
// },
// {
// "file": ".copilot-instructions.md"
// }
// ],
"github.copilot.chat.reviewSelection.instructions": [
{
"file": ".copilot-review-instructions.md"
}
],
"github.copilot.chat.commitMessageGeneration.instructions": [
{
"file": ".copilot-commit-message-instructions.md"
}
],
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
{
"file": ".copilot-pull-request-description-instructions.md"
}
],
//
// intelliSense
"editor.suggestSelection": "recentlyUsedByPrefix",
"editor.inlineSuggest.enabled": true,
"editor.suggest.showStatusBar": true,
// Suggest: Insert Mode: insert (default)
// "editor.suggest.insertMode": "insert",
//
// Keyboard Shortcuts:
// enter, Tab: insert
// shift+enter, shift+tab: replace
//
// 修改 Keyboard Shortcuts:
// * [suggest insert mode: enter for insert, tab for replace · Issue #112613 · microsoft/vscode](https://github.com/microsoft/vscode/issues/112613#issuecomment-750755396)
// * keybindings.json:
// {
// "key": "enter",
// "command": "acceptSelectedSuggestion", // to insert
// "when": "suggestWidgetVisible && textInputFocus"
// },
// {
// "key": "tab",
// "command": "acceptAlternativeSelectedSuggestion", // to replace
// "when": "suggestWidgetVisible && textInputFocus"
// },
//
// Configure Language Specific Settings
//
"[cpp]": {
"editor.suggest.insertMode": "insert",
},
"[c]": {
"editor.suggest.insertMode": "insert",
},
"[json]": {
"editor.suggest.insertMode": "insert"
},
"[jsonc]": {
"editor.suggest.insertMode": "insert"
},
//
// inlay hints
"editor.inlayHints.enabled": "on",
//
// remote
"remote.extensionKind": {
"GitHub.copilot": [
"ui"
],
"GitHub.copilot-chat": [
"ui"
],
"ms-vscode.copilot-mermaid-diagram": [
"ui"
],
// "mhutchie.git-graph": [
// "ui"
// ],
"codezombiech.gitignore": [
"ui"
],
"albert.TabOut": [
"ui"
],
"mishkinf.goto-next-previous-member": [
"ui"
],
// "mhutchie.git-graph": [
// "ui"
// ],
// "codezombiech.gitignore": [
// "ui"
// ],
// "albert.TabOut": [
// "ui"
// ],
// "mishkinf.goto-next-previous-member": [
// "ui"
// ],
// "vscodevim.vim": [
// "ui"
// ]
},
//
// terminal
"terminal.integrated.fontLigatures.enabled": true,
"terminal.integrated.shellIntegration.enabled": true,
"terminal.integrated.suggest.enabled": true,
"terminal.integrated.env.osx": {
"Q_NEW_SESSION": "1"
},
//
// Live Preview
"livePreview.autoRefreshPreview": "On Changes to Saved Files",
//
// Live Server
// https://127.0.0.1:5500
// "liveServer.settings.port": 5500,
// https://127.0.0.1
"liveServer.settings.port": 443,
// C:\Windows\System32\drivers\etc\hosts
// 127.0.0.1 [your_url]
"liveServer.settings.host": "[your_url]",
"liveServer.settings.https": {
"enable": true,
// $ mkcert localhost 127.0.0.1 [your_url]
// Created a new certificate valid for the following names 📜
// - "localhost"
// - "127.0.0.1"
// - "[your_url]"
//
// The certificate is at "./localhost+2.pem" and the key at "./localhost+2-key.pem" ✅
//
// It will expire on 9 July 2027 🗓
"cert": "[your_path]\\localhost+2.pem",
"key": "[your_path]\\localhost+2-key.pem",
"passphrase": ""
},
//
// vim
"vim.enableNeovim": true,
"vim.neovimPath": "C:\\tools\\neovim\\nvim-win64\\bin\\nvim.exe",
"vim.foldfix": true, // true: Moving `j`/`k` over folds does not open up the folds
"editor.cursorSurroundingLines": 5,
// "vim.smartRelativeLine": true,
"editor.lineNumbers": "relative",
"vim.showMarksInGutter": true,
"vim.useCtrlKeys": true,
"vim.handleKeys": {
// "<C-a>": false,
// "<C-f>": false
},
"vim.visualstar": true,
"vim.highlightedyank.enable": true,
"vim.highlightedyank.color": "rgba(250, 240, 170, 0.5)",
"vim.highlightedyank.duration": 200,
"vim.useSystemClipboard": true,
"vim.hlsearch": true,
"vim.ignorecase": true,
"vim.incsearch": true,
// To improve performance
"extensions.experimental.affinity": {
"vscodevim.vim": 1
},
//
// key mapping
"vim.leader": ",",
// "vim.vimrc.enable": true,
// "vim.vimrc.path": "",
// normal mode
"vim.normalModeKeyBindings": [],
"vim.normalModeKeyBindingsNonRecursive": [
// Editor (Tab Page)
{
"before": [
"<leader>",
"t",
"a"
],
"commands": [
"workbench.action.closeAllEditors" // View: Close All Editors
]
},
{
"before": [
"<leader>",
"t",
"o"
],
"commands": [
":tabo"
]
},
{
"before": [
"<leader>",
"t",
"c"
],
"commands": [
"workbench.action.closeEditorsToTheRight"
]
},
// {
// "before": [
// "<leader>",
// "t",
// ""
// ],
// "commands": [
// "workbench.action.closeEditorsToTheLeft"
// ]
// },
{
"before": [
"<leader>",
"t",
"h"
],
"commands": [
":tabm -"
]
},
{
"before": [
"<leader>",
"t",
"l"
],
"commands": [
":tabm +"
]
},
// {
// "before": [
// "<leader>",
// "t",
// "s"
// ],
// "after": [
// ]
// },
//
{
"before": [
"<C-d>" // 避免 half page down 經過 folds 會展開
],
"after": [
"1",
"5",
"g",
"j",
"z",
"z",
]
},
{
"before": [
"<C-u>"
],
"after": [
"1",
"5",
"g",
"k",
"z",
"z"
]
},
{
"before": [
"<leader>",
"h"
],
"after": [
"^"
]
},
{
"before": [
"<leader>",
"l"
],
"after": [
"$"
]
},
{
// alefragnani.Bookmarks: Mark/unmark positions with bookmarks
"before": [
"<leader>",
"m"
],
"commands": [
"bookmarks.toggle"
]
},
{
// alefragnani.Bookmarks: Mark/unmark positions with bookmarks label
"before": [
"<leader>",
"M"
],
"commands": [
"bookmarks.toggleLabeled"
]
},
{
// alefragnani.Bookmarks: List all bookmarks in the current file
"before": [
"<leader>",
"b",
"l"
],
"commands": [
"bookmarks.list"
]
},
{
// alefragnani.Bookmarks: List all bookmarks from all files
"before": [
"<leader>",
"b",
"L"
],
"commands": [
"bookmarks.listFromAllFiles"
]
},
{
// alefragnani.Bookmarks: Jump to Next
"before": [
"<leader>",
"b",
"n"
],
"commands": [
"bookmarks.jumpToNext"
]
},
{
// alefragnani.Bookmarks: Jump to Previous
"before": [
"<leader>",
"b",
"N"
],
"commands": [
"bookmarks.jumpToPrevious"
]
},
{
// vim-easymotion: Search two character
"before": [
"<space>",
],
"after": [
"<leader>",
"<leader>",
"2",
"s"
]
},
{
"before": [
"<leader>",
","
],
"after": [
"A",
",",
"<Esc>"
]
},
{
"before": [
"<leader>",
";"
],
"after": [
"A",
";",
"<Esc>"
]
},
{
"before": [
"<leader>",
"g",
"e"
],
"commands": [
"editor.action.marker.nextInFiles"
]
},
{
"before": [
"<leader>",
"g",
"E"
],
"commands": [
"editor.action.marker.prevInFiles"
]
},
{
"before": [
"<leader>",
"a"
],
"commands": [
"editor.action.quickFix"
]
},
{
"before": [
"<leader>",
"A"
],
"commands": [
"editor.action.sourceAction"
]
},
{
"before": [
"<leader>",
"f"
],
"commands": [
"editor.action.formatDocument"
]
},
{
"before": [
"<leader>",
"p"
],
"commands": [
"editor.action.triggerParameterHints"
]
},
{
// VSCodeVim tricks!:
// gh - equivalent to hovering your mouse over wherever the cursor is. Handy for seeing types and error messages without reaching for the mouse!
"before": [
"<leader>",
"q"
],
"commands": [
"editor.action.showHover"
]
},
{
"before": [
"<leader>",
"k"
],
"commands": [
"editor.action.moveLinesUpAction"
]
},
{
"before": [
"<leader>",
"j"
],
"commands": [
"editor.action.moveLinesDownAction"
]
},
{
// VSCodeVim tricks!:
// gb - adds another cursor on the next word it finds which is the same as the word under the cursor.
"before": [
"g",
"B"
],
"commands": [
"editor.action.selectHighlights"
]
},
{
// VSCodeVim tricks!:
// af - visual mode command which selects increasingly large blocks of text.
"before": [
"<leader>",
"w"
],
"commands": [
"editor.action.smartSelect.expand"
]
},
{
"before": [
"<leader>",
"W"
],
"commands": [
"editor.action.smartSelect.shrink"
]
},
{
"before": [
"<leader>",
"d"
],
"commands": [
// "editor.action.duplicateSelection"
"editor.action.copyLinesDownAction"
]
},
{
"before": [
"<leader>",
"g",
"j"
],
"commands": [
// "breadcrumbs.focus"
"breadcrumbs.focusAndSelect"
]
},
{
"before": [
"<leader>",
"g",
"f"
],
"commands": [
"workbench.action.quickOpen"
]
},
{
"before": [
"<leader>",
"g",
"t"
],
"commands": [
"editor.action.goToTypeDefinition"
]
},
{
"before": [
"<leader>",
"g",
"T"
],
"commands": [
"editor.action.peekTypeDefinition"
]
},
{
"before": [
"<leader>",
"g",
"d"
],
"commands": [
"editor.action.revealDefinition"
]
},
{
"before": [
"<leader>",
"g",
"D"
],
"commands": [
"editor.action.peekDefinition"
]
},
{
"before": [
"<leader>",
"g",
"i"
],
"commands": [
"editor.action.goToImplementation"
]
},
{
"before": [
"<leader>",
"g",
"I"
],
"commands": [
"editor.action.peekImplementation"
]
},
{
"before": [
"<leader>",
"g",
"u"
],
"commands": [
"editor.action.goToReferences"
]
},
{
"before": [
"<leader>",
"g",
"U"
],
"commands": [
"editor.action.referenceSearch.trigger"
]
},
{
"before": [
"<leader>",
"g",
"m"
],
"commands": [
"workbench.action.gotoSymbol"
]
},
{
"before": [
"<leader>",
"c",
"i"
],
"commands": [
{
"command": "references-view.showCallHierarchy"
},
{
"command": "references-view.showIncomingCalls"
}
]
},
{
"before": [
"<leader>",
"c",
"o"
],
"commands": [
{
"command": "references-view.showCallHierarchy"
},
{
"command": "references-view.showOutgoingCalls"
}
]
},
{
"before": [
"<leader>",
"g",
"l"
],
"commands": [
"workbench.files.action.showActiveFileInExplorer"
]
},
{
"before": [
"<leader>",
"g",
"w"
],
"commands": [
"revealFileInOS"
]
},
{
"before": [
"<leader>",
"s",
"r"
],
"commands": [
"editor.action.refactor"
]
},
{
"before": [
"<leader>",
"r",
"r"
],
"commands": [
"editor.action.rename"
]
},
{
"before": [
"<leader>",
"r",
"m"
],
"commands": [
{
"command": "editor.action.codeAction",
"args": {
"kind": "refactor.extract.function"
}
}
],
},
// [Go to Next/Previous Member](https://marketplace.visualstudio.com/items?itemName=mishkinf.goto-next-previous-member)
{
"before": [
"[",
"m"
],
"commands": [
"gotoNextPreviousMember.previousMember"
]
},
{
"before": [
"]",
"m"
],
"commands": [
"gotoNextPreviousMember.nextMember"
]
},
// view
{
"before": [
"<leader>",
"v",
"l"
],
"commands": [
"workbench.action.toggleSidebarVisibility"
]
},
{
"before": [
"<leader>",
"v",
"h"
],
"commands": [
"workbench.action.toggleAuxiliaryBar"
]
},
{
"before": [
"<leader>",
"<BS>",
],
"commands": [
"workbench.action.navigateToLastEditLocation"
]
}
],
// insert mode
"vim.insertModeKeyBindings": [],
"vim.insertModeKeyBindingsNonRecursive": [
{
"before": [
"<C-i>",
],
"commands": [
"inlineChat.start"
]
},
],
// visual mode
"vim.visualModeKeyBindings": [],
"vim.visualModeKeyBindingsNonRecursive": [
// // [火大的貼上問題 - vscode vim mode | 🌹 喇賽的人 Blog 🌹](https://www.blog.lasai.com.tw/2020/07/05/vscode-vim-mode/#%E7%81%AB%E5%A4%A7%E7%9A%84%E8%B2%BC%E4%B8%8A%E5%95%8F%E9%A1%8C)
// {
// "before": [
// "p"
// ],
// "after": [
// "\"",
// "0", // *: system clipboard
// "p"
// ]
// },
// VSCodeVim:
// Bind p in visual mode to paste without overriding the current register:
{
"before": [
"p",
],
"after": [
"p",
"g",
"v",
"y"
]
},
{
"before": [
"<leader>",
"h"
],
"after": [
"^"
]
},
{
"before": [
"<leader>",
"l"
],
"after": [
"$"
]
},
{
// alefragnani.Bookmarks: Mark/unmark positions with bookmarks
"before": [
"<leader>",
"m"
],
"commands": [
"bookmarks.toggle"
]
},
{
// alefragnani.Bookmarks: Mark/unmark positions with bookmarks label
"before": [
"<leader>",
"M"
],
"commands": [
"bookmarks.toggleLabeled"
]
},
{
// alefragnani.Bookmarks: List all bookmarks in the current file
"before": [
"<leader>",
"b",
"l"
],
"commands": [
"bookmarks.list"
]
},
{
// alefragnani.Bookmarks: List all bookmarks from all files
"before": [
"<leader>",
"b",
"L"
],
"commands": [
"bookmarks.listFromAllFiles"
]
},
{
// alefragnani.Bookmarks: Jump to Next
"before": [
"<leader>",
"b",
"n"
],
"commands": [
"bookmarks.jumpToNext"
]
},
{
// alefragnani.Bookmarks: Jump to Previous
"before": [
"<leader>",
"b",
"N"
],
"commands": [
"bookmarks.jumpToPrevious"
]
},
{
// vim-easymotion: Search two character
"before": [
"<space>",
],
"after": [
"<leader>",
"<leader>",
"2",
"s"
]
},
{
"before": [
"<leader>",
"a"
],
"commands": [
"editor.action.quickFix"
]
},
{
"before": [
"<leader>",
"f"
],
"commands": [
"editor.action.formatSelection"
]
},
{
// VSCodeVim tricks!:
// gh - equivalent to hovering your mouse over wherever the cursor is. Handy for seeing types and error messages without reaching for the mouse!
"before": [
"<leader>",
"q"
],
"commands": [
"editor.action.showHover"
]
},
{
"before": [
"<leader>",
"k"
],
"commands": [
"editor.action.moveLinesUpAction"
]
},
{
"before": [
"<leader>",
"j"
],
"commands": [
"editor.action.moveLinesDownAction"
]
},
{
// VSCodeVim tricks!:
// gb - adds another cursor on the next word it finds which is the same as the word under the cursor.
"before": [
"g",
"B"
],
"commands": [
"editor.action.selectHighlights"
]
},
{
// VSCodeVim tricks!:
// af - visual mode command which selects increasingly large blocks of text.
"before": [
"<leader>",
"w"
],
"commands": [
"editor.action.smartSelect.expand"
]
},
{
"before": [
"<leader>",
"W"
],
"commands": [
"editor.action.smartSelect.shrink"
]
},
{
"before": [
"<leader>",
"d"
],
"commands": [
// "editor.action.duplicateSelection"
"editor.action.copyLinesDownAction"
]
},
{
"before": [
"<leader>",
"s",
"r"
],
"commands": [
"editor.action.refactor"
]
},
{
"before": [
"<leader>",
"r",
"r"
],
"commands": [
"editor.action.rename"
]
},
{
"before": [
"<leader>",
"r",
"m"
],
"commands": [
{
"command": "editor.action.codeAction",
"args": {
"kind": "refactor.extract.function"
}
}
],
},
{
"before": [
"<C-i>",
],
"commands": [
"inlineChat.start"
]
},
],
// operator pending mode
"vim.operatorPendingModeKeyBindings": [],
"vim.operatorPendingModeKeyBindingsNonRecursive": [
{
// y<leader>h / c<leader>h / ...
"before": [
"<leader>",
"h"
],
"after": [
"^"
]
},
{
"before": [
"<leader>",
"l"
],
"after": [
"$"
]
}
],
//
// [vim-surround](https://github.com/VSCodeVim/Vim#vim-surround)
// Add: y s <motion> <desired>
// Delete: d s <existing>
// Change: c s <existing> <desired>
// Add (visual mode): S <desired>
//
// Some examples:
// * "test" with cursor inside quotes type cs"' to end up with 'test'
// * "test" with cursor inside quotes type ds" to end up with test
// * "test" with cursor inside quotes type cs"t and enter 123> to end up with <123>test</123>
"vim.surround": true,
//
// [vim-easymotion](https://github.com/VSCodeVim/Vim#vim-easymotion)
"vim.easymotion": true,
//
// im-select
"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "1033",
"vim.autoSwitchInputMethod.obtainIMCmd": "C:\\Users\\kevinhuang\\.vscode\\extensions\\im-select.exe",
// [INSERT] 中文 > [NORMAL] 英文 > [INSERT] 中文
// "vim.autoSwitchInputMethod.switchIMCmd": "C:\\Users\\kevinhuang\\.vscode\\extensions\\im-select.exe {im}",
// [INSERT] 中文 > [NORMAL] 英文 > [INSERT] 英文
"vim.autoSwitchInputMethod.switchIMCmd": "C:\\Users\\kevinhuang\\.vscode\\extensions\\im-select.exe 1033 {im}",
//
// Profiles
"workbench.settings.applyToAllProfiles": [
"workbench.colorTheme",
"window.commandCenter",
"workbench.navigationControl.enabled",
"workbench.sideBar.location",
"workbench.panel.showLabels",
"workbench.secondarySideBar.showLabels",
"editor.minimap.enabled",
"editor.bracketPairColorization.enabled",
"editor.guides.bracketPairs",
"editor.formatOnSave",
"workbench.iconTheme",
"workbench.tree.enableStickyScroll",
"editor.stickyScroll.enabled",
"editor.stickyScroll.defaultModel",
"editor.fontFamily",
"editor.fontLigatures",
"editor.fontSize",
"editor.lineHeight",
"git.blame.editorDecoration.enabled",
"git.blame.statusBarItem.enabled",
"diffEditor.ignoreTrimWhitespace",
"github.copilot.enable",
"chat.commandCenter.enabled",
"github.copilot.selectedCompletionModel",
"github.copilot.editor.enableAutoCompletions",
"github.copilot.editor.enableCodeActions",
"github.copilot.renameSuggestions.triggerAutomatically",
"workbench.commandPalette.experimental.askChatLocation",
"github.copilot.chat.search.semanticTextResults",
"editor.inlineSuggest.showToolbar",
"editor.inlineSuggest.syntaxHighlightingEnabled",
"github.copilot.nextEditSuggestions.enabled",
"editor.inlineSuggest.edits.allowCodeShifting",
"editor.inlineSuggest.edits.renderSideBySide",
"editor.inlineSuggest.edits.showCollapsed",
"github.copilot.chat.languageContext.typescript.enabled",
"github.copilot.chat.languageContext.fix.typescript.enabled",
"github.copilot.chat.languageContext.inline.typescript.enabled",
"github.copilot.chat.followUps",
"github.copilot.chat.localeOverride",
"github.copilot.chat.useProjectTemplates",
"github.copilot.chat.scopeSelection",
"chat.detectParticipant.enabled",
"github.copilot.chat.startDebugging.enabled",
"github.copilot.chat.setupTests.enabled",
"github.copilot.chat.generateTests.codeLens",
"github.copilot.chat.editor.temporalContext.enabled",
"inlineChat.holdToSpeech",
"inlineChat.finishOnType",
"inlineChat.accessibleDiffView",
"chat.agent.enabled",
"chat.agent.maxRequests",
"github.copilot.chat.agent.thinkingTool",
"github.copilot.chat.codesearch.enabled",
"github.copilot.chat.newWorkspaceCreation.enabled",
"github.copilot.chat.agent.runTasks",
"chat.mcp.enabled",
"chat.mcp.discovery.enabled",
"mcp",
"github.copilot.chat.edits.suggestRelatedFilesForTests",
"github.copilot.chat.edits.suggestRelatedFilesFromGitHistory",
"chat.editing.confirmEditRequestRemoval",
"chat.editing.confirmEditRequestRetry",
"chat.promptFiles",
"chat.promptFilesLocations",
"github.copilot.chat.testGeneration.instructions",
"github.copilot.chat.codeGeneration.useInstructionFiles",
"github.copilot.chat.codeGeneration.instructions",
"github.copilot.chat.reviewSelection.instructions",
"github.copilot.chat.commitMessageGeneration.instructions",
"github.copilot.chat.pullRequestDescriptionGeneration.instructions",
"editor.suggestSelection",
"editor.inlineSuggest.enabled",
"editor.suggest.showStatusBar",
"editor.suggest.insertMode",
"editor.inlayHints.enabled",
"remote.extensionKind",
"terminal.integrated.fontLigatures.enabled",
"terminal.integrated.shellIntegration.enabled",
"terminal.integrated.suggest.enabled",
"terminal.integrated.env.osx",
"livePreview.autoRefreshPreview",
"vim.enableNeovim",
"vim.neovimPath",
"vim.foldfix",
"editor.cursorSurroundingLines",
"editor.lineNumbers",
"vim.showMarksInGutter",
"vim.useCtrlKeys",
"vim.handleKeys",
"vim.visualstar",
"vim.highlightedyank.enable",
"vim.highlightedyank.color",
"vim.highlightedyank.duration",
"vim.useSystemClipboard",
"vim.hlsearch",
"vim.ignorecase",
"vim.incsearch",
"extensions.experimental.affinity",
"vim.leader",
"vim.surround",
"vim.easymotion",
"vim.autoSwitchInputMethod.enable",
"vim.autoSwitchInputMethod.defaultIM",
"vim.autoSwitchInputMethod.obtainIMCmd",
"vim.autoSwitchInputMethod.switchIMCmd",
],
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment