kustomisasi beberapa shortcut vs code agar lebih sing sing sing

customisasi shorcuts vs code di kombinasikan dengan plugin vim sehingga workflow di vs code lebih sing sing sing

keybindings.json
[
  {
    "key": "shift+k",
    "command": "editor.action.showHover",
    "when": "editorTextFocus && vim.active && vim.mode != 'Insert' && !inSnippetMode"
  },
  {
    "key": "ctrl+shift+r",
    "command": "editor.action.startFindReplaceAction",
    "when": "editorFocus || editorIsOpen"
  },
  {
    "key": "ctrl+shift+z",
    "command": "workbench.action.toggleActivityBarVisibility"
  },
  {
    "key": "ctrl+alt+s",
    "command": "workbench.action.openSettings"
  },
  {
    "key": "ctrl+j",
    "command": "workbench.action.focusBelowGroup",
    "when": "editorTextFocus && vim.active && vim.mode != 'Insert'"
  },
  {
    "key": "ctrl+k",
    "command": "workbench.action.focusAboveGroup",
    "when": "editorTextFocus && vim.active && vim.mode != 'Insert'"
  },
  {
    "key": "ctrl+h",
    "command": "workbench.action.focusLeftGroup",
    "when": "editorTextFocus && vim.active && vim.mode != 'Insert'"
  },
  {
    // Special case: when in first editor group (pane), go to sidebar
    // if visible.
    "key": "ctrl+h",
    "command": "workbench.explorer.fileView.focus",
    "when": "editorTextFocus && vim.active && vim.mode != 'Insert' && activeEditorGroupIndex == 1 && explorerViewletVisible"
  },
  {
    "key": "ctrl+l",
    "command": "workbench.action.focusRightGroup",
    "when": "editorTextFocus && vim.active && vim.mode != 'Insert'"
  },
  {
    // Special case: when in file explorer, go right (back to 1st open
    // editor group)
    "key": "ctrl+l",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "filesExplorerFocus"
  },
  // terminal action
  {
    "key": "ctrl+,",
    "command": "workbench.action.terminal.toggleTerminal",
    "when": "terminal.active"
  },
  {
    "key": "ctrl+shift+t",
    "command": "workbench.action.terminal.new",
    "when": "terminalProcessSupported || terminalWebExtensionContributedProfile"
  },
  {
    "key": "ctrl+shift+.",
    "command": "workbench.action.terminal.split",
    "when": "terminalFocus && terminalProcessSupported || terminalFocus && terminalWebExtensionContributedProfile"
  },
  {
    "key": "alt+j",
    "command": "workbench.action.terminal.focusNext",
    "when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
  },
  {
    "key": "alt+k",
    "command": "workbench.action.terminal.focusPrevious",
    "when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
  },
  {
    "key": "alt+l",
    "command": "workbench.action.terminal.focusNextPane",
    "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
  },
  {
    "key": "alt+h",
    "command": "workbench.action.terminal.focusPreviousPane",
    "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
  },
  {
    "key": "ctrl+x",
    "command": "workbench.action.terminal.kill",
    "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
  },
  {
    "key": "ctrl+shift+,",
    "command": "terminal.focus"
  },
  {
    "key": "ctrl+shift+;",
    "command": "workbench.action.focusActiveEditorGroup",
    "when": "terminalFocus"
  },
  // file tree action
  {
    "key": "a f",
    "command": "explorer.newFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus"
  },
  {
    "key": "r f",
    "command": "renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "a d",
    "command": "explorer.newFolder",
    "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus"
  },
  {
    "key": "d f",
    "command": "deleteFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  // default shortcut vscode that changed or disabled by me for my custom shortcut
  {
    "key": "ctrl+shift+,",
    "command": "-editor.action.inPlaceReplace.up",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "key": "ctrl+shift+b",
    "command": "-workbench.action.tasks.build",
    "when": "taskCommandsRegistered"
  },
  {
    "key": "ctrl+shift+b",
    "command": "breadcrumbs.focus",
    "when": "breadcrumbsPossible && breadcrumbsVisible"
  },
  {
    "key": "ctrl+shift+;",
    "command": "-breadcrumbs.focus",
    "when": "breadcrumbsPossible && breadcrumbsVisible"
  },
  {
    "key": "ctrl+shift+z",
    "command": "-redo"
  },
  {
    "key": "ctrl+,",
    "command": "-workbench.action.openSettings"
  },
  {
    "key": "ctrl+`",
    "command": "-workbench.action.terminal.toggleTerminal",
    "when": "terminal.active"
  },
  {
    "key": "ctrl+h",
    "command": "-editor.action.startFindReplaceAction",
    "when": "editorFocus || editorIsOpen"
  },
  {
    "key": "ctrl+shift+t",
    "command": "-workbench.action.reopenClosedEditor"
  },
  {
    "key": "alt+m",
    "command": "workbench.action.toggleMenuBar"
  }
]
settings.json
{
  "workbench.colorTheme": "Rosé Pine",
  "workbench.iconTheme": "material-icon-theme",
  "workbench.startupEditor": "none",
  "editor.fontFamily": "'FiraCode Nerd Font', 'Droid Sans Mono', 'Monaco', 'monospace', monospace",
  "editor.fontLigatures": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "editor.minimap.enabled": false,
  "editor.wordWrap": "on",
  //vim settings
  "vim.easymotion": true,
  "vim.incsearch": true,
  "vim.useSystemClipboard": true,
  "vim.useCtrlKeys": true,
  "vim.hlsearch": true,
  "vim.highlightedyank.enable": true,
  "vim.leader": "<space>",
  "vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": false,
    "<C-d>": false,
    "<C-p>": false,
    "<C-w>": false,
    "<C-b>": false
  },
  "extensions.experimental.affinity": {
    "vscodevim.vim": 1
  },
  "vim.insertModeKeyBindings": [
    {
      "before": ["j", "j"],
      "after": ["<Esc>"]
    }
  ],
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": ["<leader>", "d"],
      "after": ["d", "d"]
    },
    {
      "before": ["<C-n>"],
      "commands": [":nohl"]
    }
  ],
  "vim.normalModeKeyBindings": [
    {
      "before": ["<leader>", "m"],
      "commands": ["bookmarks.toggle"]
    },
    {
      "before": ["<leader>", "b"],
      "commands": ["bookmarks.list"]
    },
    {
      "before": ["<leader>", "w"],
      "commands": ["workbench.action.files.save"]
    },
    {
      "before": ["<Tab>"],
      "commands": [":bnext"]
    },
    {
      "before": ["<S-Tab>"],
      "commands": [":bprevious"]
    },
    {
      "before": ["<leader>", "x"],
      "commands": [":bdelete"]
    },
    {
      "before": ["<leader>", "f"],
      "commands": ["workbench.files.action.focusFilesExplorer"]
    },
    {
      "before": ["<leader>", "e"],
      "commands": ["workbench.action.toggleSidebarVisibility"]
    },
    {
      "key": "K",
      "command": "editor.action.showHover",
      "when": "editorTextFocus"
    },
    {
      "before": ["s", "v"],
      "commands": ["workbench.action.splitEditorRight"],
      "when": ["editorFocus"]
    },
    {
      "before": ["s", "h"],
      "commands": ["workbench.action.splitEditorDown"],
      "when": ["editorFocus"]
    }
  ],
  "vim.visualModeKeyBindings": [
    {
      "before": [">"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "before": ["<"],
      "commands": ["editor.action.outdentLines"]
    },
    {
      "before": ["g", "n"],
      "commands": ["editor.action.addSelectionToNextFindMatch"],
      "when": ["editorFocus"]
    },
    {
      "before": ["g", "s"],
      "commands": ["editor.action.moveSelectionToNextFindMatch"],
      "when": ["editorFocus"]
    },
    {
      "before": ["g", "p"],
      "commands": ["editor.action.moveSelectionToPreviousFindMatch"],
      "when": ["editorFocus"]
    }
  ],
  "editor.linkedEditing": true,
  "screencastMode.fontSize": 32,
  "screencastMode.keyboardOverlayTimeout": 500,
  "screencastMode.keyboardOptions": {
    "showCommands": false
  },
  // custom vs code css and js
  "vscode_custom_css.imports": [
    "file:///C:/Users/syari/Documents/VSCodeCustom/custom-vscode.css",
    "file:///C:/Users/syari/Documents/VSCodeCustom/custom-vscode.js"
  ],
  "breadcrumbs.enabled": false,
  "editor.padding.top": 12,
  "editor.stickyScroll.enabled": false,
  "editor.fontSize": 13,
  "editor.lineHeight": 22,
  "workbench.tree.enableStickyScroll": false,
  "vim.foldfix": true,
  "window.menuBarVisibility": "toggle",
  "editor.lineNumbers": "relative",
  "window.commandCenter": false,
  "workbench.layoutControl.enabled": false,
  "terminal.integrated.defaultProfile.windows": "PowerShell",
  "[php]": {
    "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
  },
  "[blade]": {
    "editor.defaultFormatter": "shufo.vscode-blade-formatter"
  },
  "[prisma]": {
    "editor.defaultFormatter": "Prisma.prisma"
  },
  "emmet.includeLanguages": {
    "ejs": "html"
  },
  "workbench.activityBar.location": "hidden"
}