mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 00:33:00 +00:00
chezmoi: windows migration dir
This commit is contained in:
parent
52b70819bf
commit
c24adf35d4
51 changed files with 3403 additions and 3840 deletions
9547
misc/vscode/extensions/vspacecode.jsonc
Normal file
9547
misc/vscode/extensions/vspacecode.jsonc
Normal file
File diff suppressed because it is too large
Load diff
1038
misc/vscode/hsnips/latex.hsnips
Normal file
1038
misc/vscode/hsnips/latex.hsnips
Normal file
File diff suppressed because it is too large
Load diff
1009
misc/vscode/hsnips/markdown.hsnips
Normal file
1009
misc/vscode/hsnips/markdown.hsnips
Normal file
File diff suppressed because it is too large
Load diff
133
misc/vscode/hsnips/typst.hsnips
Normal file
133
misc/vscode/hsnips/typst.hsnips
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
snippet mk "inline Math" iwA
|
||||
$${1}$
|
||||
endsnippet
|
||||
|
||||
snippet dmi "display Math" iwA
|
||||
$ ${1} $
|
||||
endsnippet
|
||||
|
||||
snippet dmm "display Math" iwA
|
||||
$
|
||||
${1}
|
||||
$
|
||||
endsnippet
|
||||
|
||||
snippet pp "parenthesis" iAm
|
||||
(${1})
|
||||
endsnippet
|
||||
|
||||
snippet lim "limit" iAm
|
||||
lim_(${1:n} -> ${2:oo})
|
||||
endsnippet
|
||||
|
||||
snippet derive "derive" iAm
|
||||
derive(${1:f}, ${2:x})
|
||||
endsnippet
|
||||
|
||||
snippet part "partial" iAm
|
||||
(diff ${1:f})/(diff ${3:x})
|
||||
endsnippet
|
||||
|
||||
snippet sb "subscript" iAm
|
||||
_(${1:2})
|
||||
endsnippet
|
||||
|
||||
snippet sr "square" iAm
|
||||
^2
|
||||
endsnippet
|
||||
|
||||
snippet pow "to the ... power" iAm
|
||||
^(${1:3})
|
||||
endsnippet
|
||||
|
||||
snippet veps "epsilon.alt" iAm
|
||||
epsilon.alt
|
||||
endsnippet
|
||||
|
||||
snippet ;; "\;" iAm
|
||||
\;
|
||||
endsnippet
|
||||
|
||||
snippet ,, "\," iAm
|
||||
\,
|
||||
endsnippet
|
||||
|
||||
snippet `([A-Za-z\)])(\d)` "auto subscript" iAm
|
||||
`` rv = m[1] + "_" + m[2]``
|
||||
endsnippet
|
||||
|
||||
snippet `([A-Za-z\)])_(\d{2})` "auto subscript" iAm
|
||||
`` rv = m[1] + "_(" + m[2] + ")" ``
|
||||
endsnippet
|
||||
|
||||
snippet `(?<![A-Za-z])([A-Za-hk-z])([acdijkmnpqrstABCDIJKMNPQRST])\2` "auto subscript" iAm
|
||||
`` rv = m[1] + "_" + m[2] ``
|
||||
endsnippet
|
||||
|
||||
# Custom: Add more greek letters
|
||||
|
||||
snippet `(\)|mu|alpha|sigma|rho|beta|gamma|delta|zeta|eta|varepsilon|epsilon|theta|iota|kappa|vartheta|lambda|nu|pi|rho|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)([acdijkmnpqrstABCDIJKMNPQRST])\2` "auto subscript for greek letter" iAm
|
||||
`` rv = m[1] + "_" + m[2].substring(0, 1) ``
|
||||
endsnippet
|
||||
|
||||
snippet `(?<![A-Za-z])([A-Za-hk-z01])(grave|acute|hat|tilde|macron|breve|dot|ddot|dddot|ddddot|diaer|circle|caron|vec|upright|italic|b|sans|frak|mono|bb|cal|ov)` "hat" iAm
|
||||
``
|
||||
const map = { "ddot": "dot.double", "dddot": "dot.triple", "ddddot": "dot.quad", "vec": "arrow", "b": "bold", "ov": "overline" }
|
||||
rv = (map[m[2]] || m[2]) + "(" + m[1] + ")"
|
||||
``
|
||||
endsnippet
|
||||
|
||||
snippet `(mu|alpha|sigma|rho|beta|gamma|delta|zeta|eta|varepsilon|epsilon|theta|iota|kappa|vartheta|lambda|nu|pi|rho|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(grave|acute|hat|tilde|macron|breve|dot|ddot|dddot|ddddot|diaer|circle|caron|vec|upright|italic|b|sans|frak|mono|bb|cal|ov)` "hat" iAm
|
||||
``
|
||||
const map = { "ddot": "dot.double", "dddot": "dot.triple", "ddddot": "dot.quad", "vec": "arrow", "b": "bold", "ov": "overline" }
|
||||
rv = (map[m[2]] || m[2]) + "(" + m[1] + ")"
|
||||
``
|
||||
endsnippet
|
||||
|
||||
snippet `((grave|acute|hat|tilde|macron|breve|dot|dot\.double|dot\.triple|dot\.quad|diaer|circle|acute\.double|caron|arrow|arrow\.l|upright|italic|bold|sans|frak|mono|bb|cal)\([a-zA-Z\d]+\))(grave|acute|hat|tilde|macron|breve|dot|ddot|dddot|ddddot|diaer|circle|caron|vec|upright|italic|b|sans|frak|mono|bb|cal|ov)` "hat" iAm
|
||||
``
|
||||
const map = { "ddot": "dot.double", "dddot": "dot.triple", "ddddot": "dot.quad", "vec": "arrow", "b": "bold", "ov": "overline" }
|
||||
rv = (map[m[3]] || m[3]) + "(" + m[1] + ")"
|
||||
``
|
||||
endsnippet
|
||||
|
||||
snippet `(?<!\.)alt` "alt" iAm
|
||||
.alt
|
||||
endsnippet
|
||||
|
||||
snippet invs "inverse" iAm
|
||||
^(-1)
|
||||
endsnippet
|
||||
|
||||
snippet xl "vector" iAm
|
||||
arrow(${1:x})
|
||||
endsnippet
|
||||
|
||||
snippet @< "angle" iAm
|
||||
angle.l ${1:x} angle.r
|
||||
endsnippet
|
||||
|
||||
|
||||
snippet HL "highlight" iA
|
||||
#highlight[${VISUAL}]
|
||||
endsnippet
|
||||
|
||||
snippet iiint "triple integral" iAm
|
||||
integral.triple ${1}
|
||||
endsnippet
|
||||
|
||||
snippet oint "closed line integral" iAm
|
||||
integral.cont ${1}
|
||||
endsnippet
|
||||
|
||||
snippet iint "double integral" iAm
|
||||
integral.double ${1}
|
||||
endsnippet
|
||||
|
||||
snippet int "integral" iAm
|
||||
integral ${1}
|
||||
endsnippet
|
||||
|
||||
snippet // "frac" iAm
|
||||
frac(${1:1}, ${2:2})
|
||||
endsnippet
|
||||
726
misc/vscode/keybindings-macos.jsonc
Normal file
726
misc/vscode/keybindings-macos.jsonc
Normal file
|
|
@ -0,0 +1,726 @@
|
|||
// Place your key bindings in this file to override the defaults
|
||||
[
|
||||
// #region mac minor change for cross-platform compatiblity
|
||||
{
|
||||
"key": "cmd+r",
|
||||
"command": "workbench.action.openRecent"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+r",
|
||||
"command": "-workbench.action.openRecent"
|
||||
},
|
||||
{
|
||||
"key": "cmd+k cmd+o",
|
||||
"command": "workbench.action.files.openFileFolder",
|
||||
"when": "isMacNative && openFolderWorkspaceSupport"
|
||||
},
|
||||
// #endregion
|
||||
// #region quickOpen (Telescope)
|
||||
{
|
||||
"key": "cmd+p",
|
||||
"command": "workbench.action.quickOpen"
|
||||
},
|
||||
{
|
||||
"key": "cmd+p",
|
||||
"command": "workbench.action.quickOpenNavigatePrevious",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "cmd+n",
|
||||
"command": "workbench.action.quickOpenNavigateNext",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "cmd+[",
|
||||
"command": "workbench.action.closeQuickOpen",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+[",
|
||||
"command": "workbench.action.closeQuickOpen",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{ // Emacs-like
|
||||
"key": "ctrl+g",
|
||||
"command": "workbench.action.closeQuickOpen",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{ // Emacs-like: M-x to show command palette
|
||||
"key": "alt+x",
|
||||
"command": "workbench.action.showCommands"
|
||||
},
|
||||
// #endregion
|
||||
// #region Extension: Code Runner
|
||||
{
|
||||
"key": "ctrl+alt+n",
|
||||
"command": "-code-runner.run"
|
||||
},
|
||||
// #endregion
|
||||
// #region Nvim-Tree like File Explorer
|
||||
// n, e : move cursor up/down
|
||||
// h : move cursor to parent folder
|
||||
// i : open file or folder
|
||||
{
|
||||
"key": "e",
|
||||
"command": "list.focusUp",
|
||||
"when": "notebookEditorFocused && !inputFocus && !notebookOutputInputFocused"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-list.focusUp",
|
||||
"when": "notebookEditorFocused && !inputFocus && !notebookOutputInputFocused"
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"command": "list.focusUp",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-list.focusUp",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "f",
|
||||
"command": "filesExplorer.findInWorkspace",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "n",
|
||||
"command": "list.focusDown",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "j",
|
||||
"command": "-list.focusDown",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "i",
|
||||
"command": "list.select",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "l",
|
||||
"command": "-list.select",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{ // z: Close all folders
|
||||
"key": "z",
|
||||
"command": "workbench.files.action.collapseExplorerFolders",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // <leader>e: Close left sidebar if is in file explorer
|
||||
"key": "space e",
|
||||
"command": "workbench.action.toggleSidebarVisibility",
|
||||
"when": "sideBarFocus && !inputFocus && !searchViewletVisible && filesExplorerFocus"
|
||||
},
|
||||
{ // <leader>e: Focus on file explorer if is on sidebar and not in file explorer
|
||||
"key": "space e",
|
||||
"command": "workbench.files.action.focusFilesExplorer",
|
||||
"when": "sideBarFocus && !inputFocus && !searchViewletVisible && !filesExplorerFocus"
|
||||
},
|
||||
{ // <leader>g: Focus on file explorer if is on sidebar and not in file explorer
|
||||
"key": "space g",
|
||||
"command": "workbench.scm.focus",
|
||||
"when": "sideBarFocus && !inputFocus && !searchViewletVisible && !scmViewletVisible"
|
||||
},
|
||||
{ // a: add
|
||||
"key": "a",
|
||||
"command": "explorer.newFile",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // p: paste
|
||||
"key": "p",
|
||||
"command": "filesExplorer.paste",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // x: cut
|
||||
"key": "x",
|
||||
"command": "filesExplorer.cut",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // d: delete
|
||||
"key": "d",
|
||||
"command": "deleteFile",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // r: rename
|
||||
"key": "r",
|
||||
"command": "renameFile",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // s: open in vertical split / to side
|
||||
"key": "s",
|
||||
"command": "explorer.openToSide",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // A: add folder
|
||||
"key": "shift+a",
|
||||
"command": "explorer.newFolder",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // C: Copy path
|
||||
"key": "shift+c",
|
||||
"command": "copyFilePath",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // E: Open in File Explorer
|
||||
"key": "shift+e",
|
||||
"command": "revealFileInOS",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // E: Open in File Explorer (WSL)
|
||||
"key": "shift+e",
|
||||
"command": "remote-wsl.revealInExplorer",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus && remoteName == 'wsl'"
|
||||
},
|
||||
{ // O: Open with System App
|
||||
"key": "shift+o",
|
||||
"command": "openInExternalApp.open",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // Y: Copy Relative Path
|
||||
"key": "shift+y",
|
||||
"command": "copyRelativeFilePath",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // R: Copy Relative Path
|
||||
"key": "shift+r",
|
||||
"command": "workbench.files.action.refreshFilesExplorer",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // T: Open in terminal
|
||||
"key": "shift+t",
|
||||
"command": "openInIntegratedTerminal",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Vim-like Hover Browsing
|
||||
{
|
||||
"key": "h",
|
||||
"command": "editor.action.scrollLeftHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
{
|
||||
"key": "n",
|
||||
"command": "editor.action.scrollDownHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"command": "editor.action.scrollUpHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
{
|
||||
"key": "i",
|
||||
"command": "editor.action.scrollRightHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
// #endregion
|
||||
// #region Comment and semicolons
|
||||
{
|
||||
"key": "cmd+;",
|
||||
"command": "extension.insertSemicolon",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "cmd+/",
|
||||
"command": "-extension.insertSemicolon",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Vim-like Jupyter Navigation
|
||||
{
|
||||
"key": "n",
|
||||
"command": "notebook.focusNextEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'none' && notebookEditorCursorAtBoundary != 'top'"
|
||||
},
|
||||
{
|
||||
"key": "j",
|
||||
"command": "-notebook.focusNextEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'none' && notebookEditorCursorAtBoundary != 'top'"
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"command": "notebook.focusPreviousEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'bottom' && notebookEditorCursorAtBoundary != 'none'"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-notebook.focusPreviousEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'bottom' && notebookEditorCursorAtBoundary != 'none'"
|
||||
},
|
||||
// #endregion
|
||||
// #region Editor: Completions
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "workbench.action.files.newUntitledFile",
|
||||
"when": "!suggestWidgetVisible && !inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "-workbench.action.files.newUntitledFile"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "selectNextSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "selectPrevSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+f",
|
||||
"command": "acceptSelectedSuggestion",
|
||||
"when": "suggestWidgetVisible && textInputFocus && !inlineSuggestionVisible"
|
||||
},
|
||||
{
|
||||
"key": "alt+f",
|
||||
"command": "editor.action.inlineSuggest.commit",
|
||||
"when": "inlineSuggestionVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+f",
|
||||
"command": "editor.action.inlineSuggest.acceptNextWord",
|
||||
"when": "inlineSuggestionVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b",
|
||||
"command": "hideSuggestWidget",
|
||||
"when": "suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b",
|
||||
"command": "editor.action.inlineSuggest.hide",
|
||||
"when": "inlineSuggestionVisible && textInputFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Terminal: tmux-like terminal control
|
||||
{
|
||||
"key": "cmd+0",
|
||||
"command": "workbench.action.focusLastEditorGroup",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + x : kill terminal
|
||||
"key": "ctrl+a x",
|
||||
"command": "workbench.action.terminal.kill",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + c : create new terminal
|
||||
"key": "ctrl+a c",
|
||||
"command": "workbench.action.terminal.new",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + | : split terminal vertically
|
||||
"key": "ctrl+a shift+\\",
|
||||
"command": "workbench.action.terminal.split",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + \ : split terminal vertically
|
||||
"key": "ctrl+a \\",
|
||||
"command": "workbench.action.terminal.split",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + / : search
|
||||
"key": "ctrl+a /",
|
||||
"command": "workbench.action.terminal.focusFind",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + t : toggle terminal
|
||||
"key": "ctrl+a t",
|
||||
"command": "workbench.action.terminal.toggleTerminal",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + ^a: show information
|
||||
"key": "ctrl+a ctrl+a",
|
||||
"command": "workbench.action.terminal.focusHover",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+i",
|
||||
"command": "-workbench.action.terminal.focusHover",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + 1 : focus terminal 1
|
||||
"key": "ctrl+a 1",
|
||||
"command": "workbench.action.terminal.focusAtIndex1",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + 2 : focus terminal 2
|
||||
"key": "ctrl+a 2",
|
||||
"command": "workbench.action.terminal.focusAtIndex2",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + 3 : focus terminal 3
|
||||
"key": "ctrl+a 3",
|
||||
"command": "workbench.action.terminal.focusAtIndex3",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + g : Go to recent directory
|
||||
"key": "ctrl+a g",
|
||||
"command": "workbench.action.terminal.goToRecentDirectory",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+g",
|
||||
"command": "-workbench.action.terminal.goToRecentDirectory",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{ // prefix + d : detach terminal
|
||||
"key": "ctrl+a d",
|
||||
"command": "workbench.action.terminal.detachSession",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{ // prefix + a : attach to session
|
||||
"key": "ctrl+a a",
|
||||
"command": "workbench.action.terminal.attachToSession",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a h",
|
||||
"command": "workbench.action.terminal.focusPreviousPane",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a i",
|
||||
"command": "workbench.action.terminal.focusNextPane",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+H",
|
||||
"command": "workbench.action.terminal.resizePaneLeft",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+N",
|
||||
"command": "workbench.action.terminal.resizePaneDown",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+E",
|
||||
"command": "workbench.action.terminal.resizePaneUp",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+I",
|
||||
"command": "workbench.action.terminal.resizePaneRight",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "cmd+`",
|
||||
"command": "workbench.action.terminal.toggleTerminal",
|
||||
"when": "terminal.active"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+`",
|
||||
"command": "-workbench.action.terminal.toggleTerminal",
|
||||
"when": "terminal.active"
|
||||
},
|
||||
// {
|
||||
// "key": "space",
|
||||
// "command": "vspacecode.space",
|
||||
// "when": "activeEditorGroupEmpty && focusedView == '' && !whichkeyActive && !inputFocus"
|
||||
// },
|
||||
// {
|
||||
// "key": "space",
|
||||
// "command": "vspacecode.space",
|
||||
// "when": "sideBarFocus && !inputFocus && !whichkeyActive"
|
||||
// },
|
||||
{
|
||||
"key": "tab",
|
||||
"command": "extension.vim_tab",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert' && editorLangId != 'magit'"
|
||||
},
|
||||
{
|
||||
"key": "tab",
|
||||
"command": "-extension.vim_tab",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
|
||||
},
|
||||
{
|
||||
"key": "x",
|
||||
"command": "magit.discard-at-point",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-magit.discard-at-point"
|
||||
},
|
||||
{
|
||||
"key": "-",
|
||||
"command": "magit.reverse-at-point",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "v",
|
||||
"command": "-magit.reverse-at-point"
|
||||
},
|
||||
{
|
||||
"key": "shift+-",
|
||||
"command": "magit.reverting",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "shift+v",
|
||||
"command": "-magit.reverting"
|
||||
},
|
||||
{
|
||||
"key": "shift+o",
|
||||
"command": "magit.resetting",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "shift+x",
|
||||
"command": "-magit.resetting"
|
||||
},
|
||||
{
|
||||
"key": "x",
|
||||
"command": "-magit.reset-mixed"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+u x",
|
||||
"command": "-magit.reset-hard"
|
||||
},
|
||||
{
|
||||
"key": "y",
|
||||
"command": "-magit.show-refs"
|
||||
},
|
||||
{
|
||||
"key": "y",
|
||||
"command": "vspacecode.showMagitRefMenu",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode == 'Normal'"
|
||||
},
|
||||
{
|
||||
"key": "g",
|
||||
"command": "-magit.refresh",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "g",
|
||||
"command": "vspacecode.showMagitRefreshMenu",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "workbench.action.quickOpenSelectNext",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "workbench.action.quickOpenSelectPrevious",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "selectNextSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "selectPrevSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "acceptSelectedSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "showNextParameterHint",
|
||||
"when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "showPrevParameterHint",
|
||||
"when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "selectNextCodeAction",
|
||||
"when": "codeActionMenuVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "selectPrevCodeAction",
|
||||
"when": "codeActionMenuVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "acceptSelectedCodeAction",
|
||||
"when": "codeActionMenuVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+h",
|
||||
"command": "file-browser.stepOut",
|
||||
"when": "inFileBrowser"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "file-browser.stepIn",
|
||||
"when": "inFileBrowser"
|
||||
},
|
||||
{
|
||||
"key": "space",
|
||||
"command": "vspacecode.space",
|
||||
"when": "activeEditorGroupEmpty && focusedView == '' && !whichkeyActive && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "space",
|
||||
"command": "vspacecode.space",
|
||||
"when": "sideBarFocus && !inputFocus && !whichkeyActive"
|
||||
},
|
||||
// #endregion
|
||||
// #region Editor: multicursor
|
||||
{
|
||||
"key": "alt+e",
|
||||
"command": "editor.action.insertCursorAbove",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+alt+up",
|
||||
"command": "-editor.action.insertCursorAbove",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "alt+n",
|
||||
"command": "editor.action.insertCursorBelow",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+alt+down",
|
||||
"command": "-editor.action.insertCursorBelow",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Emacs like Cursor Movements
|
||||
{ // macOS original C-a will move to BoL, VSCode cursorHome will move to BoL & first non-whitespace character
|
||||
"key": "ctrl+a",
|
||||
"command": "cursorHome",
|
||||
"when": "textInputFocus"
|
||||
},
|
||||
// no C-A and C-k C-a to select all, use S-a instead
|
||||
{
|
||||
"key": "ctrl+e",
|
||||
"command": "cursorEnd",
|
||||
"when": "textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "alt+b",
|
||||
"command": "cursorWordStartLeft",
|
||||
"when": "textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "alt+f",
|
||||
"command": "cursorWordStartRight",
|
||||
"when": "textInputFocus && !inlineEditIsVisible && !suggestWidgetVisible && !inlineSuggestionVisible"
|
||||
},
|
||||
// #endregion
|
||||
// #region Ctrl+W Remaps (Vim-like)
|
||||
{
|
||||
"key": "ctrl+w h",
|
||||
"command": "workbench.action.navigateLeft"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+h",
|
||||
"command": "workbench.action.toggleSidebarVisibility"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w i",
|
||||
"command": "workbench.action.navigateRight"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+i",
|
||||
"command": "workbench.action.toggleAuxiliaryBar"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w n",
|
||||
"command": "workbench.action.navigateDown"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+n",
|
||||
"command": "workbench.action.togglePanel"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w e",
|
||||
"command": "workbench.action.navigateUp"
|
||||
},
|
||||
{ // original ^w
|
||||
"key": "ctrl+w ctrl+w",
|
||||
"command": "workbench.action.closeActiveEditor",
|
||||
"when": "editorFocus || inSettingsEditor || inKeybindings || inWelcome"
|
||||
},
|
||||
{ // :only
|
||||
"key": "ctrl+w o",
|
||||
"command": "runCommands",
|
||||
"args": {
|
||||
"commands": [
|
||||
"workbench.action.joinAllGroups",
|
||||
"workbench.action.maximizeEditorHideSidebar"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+w",
|
||||
"command": "workbench.action.closeGroup",
|
||||
"when": "activeEditorGroupEmpty && multipleEditorGroups"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w",
|
||||
"command": "-workbench.action.closeGroup",
|
||||
"when": "activeEditorGroupEmpty && multipleEditorGroups"
|
||||
},
|
||||
// #endregion
|
||||
// #region Extension: VSpaceCode
|
||||
{
|
||||
"key": "alt+q",
|
||||
"command": "vspacecode.space"
|
||||
},
|
||||
// #endregion
|
||||
// #region Sidebar: Search View
|
||||
{ // Focus on search list, therefore can use n/e to move up/down
|
||||
"key": "escape",
|
||||
"command": "search.action.focusSearchList",
|
||||
"when": "searchViewletFocus && inputBoxFocus"
|
||||
},
|
||||
{ // Focus on main input box
|
||||
"key": "l",
|
||||
"command": "workbench.action.replaceInFiles",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "r",
|
||||
"command": "toggleSearchRegex",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "w",
|
||||
"command": "toggleSearchWholeWord",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "c",
|
||||
"command": "toggleSearchCaseSensitive",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "p",
|
||||
"command": "toggleSearchPreserveCase",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "i",
|
||||
"command": "search.action.focusFilesToInclude",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "shift+e",
|
||||
"command": "search.action.focusFilesToExclude",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Miscs and todos
|
||||
// #endregion
|
||||
]
|
||||
920
misc/vscode/keybindings-windows-linux.jsonc
Normal file
920
misc/vscode/keybindings-windows-linux.jsonc
Normal file
|
|
@ -0,0 +1,920 @@
|
|||
// Place your key bindings in this file to override the defaults
|
||||
[
|
||||
// #region Panel
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "workbench.action.quickOpen",
|
||||
"when": "!terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "workbench.action.quickOpenNavigatePrevious",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "workbench.action.quickOpenNavigateNext",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+[",
|
||||
"command": "workbench.action.closeQuickOpen",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{ // Emacs-like
|
||||
"key": "ctrl+g",
|
||||
"command": "workbench.action.closeQuickOpen",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{ // Emacs-like: M-x to show command palette
|
||||
"key": "alt+x",
|
||||
"command": "workbench.action.showCommands"
|
||||
},
|
||||
// #endregion
|
||||
// #region Extension: Code Runner
|
||||
{
|
||||
"key": "ctrl+alt+n",
|
||||
"command": "-code-runner.run"
|
||||
},
|
||||
// #endregion
|
||||
// #region Comment and semicolons
|
||||
{
|
||||
"key": "ctrl+oem_1", // ctrl+;
|
||||
"command": "extension.insertSemicolon",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{ // change to toggle comment
|
||||
"key": "ctrl+oem_2", // ctrl+/;
|
||||
"command": "-extension.insertSemicolon",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+oem_1",
|
||||
"command": "extension.insertSemicolonWithNewLine",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+oem_2",
|
||||
"command": "-extension.insertSemicolonWithNewLine",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+oem_2",
|
||||
"command": "github.copilot.acceptCursorPanelSolution",
|
||||
"when": "github.copilot.activated && github.copilot.panelVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+oem_2",
|
||||
"command": "-github.copilot.acceptCursorPanelSolution",
|
||||
"when": "github.copilot.activated && github.copilot.panelVisible"
|
||||
},
|
||||
// #endregion
|
||||
// #region Nvim-Tree like File Explorer
|
||||
// n, e : move cursor up/down
|
||||
// h : move cursor to parent folder
|
||||
// i : open file or folder
|
||||
{
|
||||
"key": "e",
|
||||
"command": "list.focusUp",
|
||||
"when": "notebookEditorFocused && !inputFocus && !notebookOutputInputFocused"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-list.focusUp",
|
||||
"when": "notebookEditorFocused && !inputFocus && !notebookOutputInputFocused"
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"command": "list.focusUp",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-list.focusUp",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "f",
|
||||
"command": "filesExplorer.findInWorkspace",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "n",
|
||||
"command": "list.focusDown",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "j",
|
||||
"command": "-list.focusDown",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "i",
|
||||
"command": "list.select",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "l",
|
||||
"command": "-list.select",
|
||||
"when": "listFocus && !inputFocus"
|
||||
},
|
||||
{ // ctrl-w enter: open in vertical split / to side
|
||||
"key": "ctrl+w enter",
|
||||
"command": "explorer.openToSide",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // z: Close all folders
|
||||
"key": "z",
|
||||
"command": "workbench.files.action.collapseExplorerFolders",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // <leader>e: Close left sidebar if is in file explorer
|
||||
"key": "space e",
|
||||
"command": "workbench.action.toggleSidebarVisibility",
|
||||
"when": "sideBarFocus && !inputFocus && !searchViewletVisible && filesExplorerFocus"
|
||||
},
|
||||
{ // <leader>e: Focus on file explorer if is on sidebar and not in file explorer
|
||||
"key": "space e",
|
||||
"command": "workbench.files.action.focusFilesExplorer",
|
||||
"when": "sideBarFocus && !inputFocus && !searchViewletVisible && !filesExplorerFocus"
|
||||
},
|
||||
{ // <leader>g: Focus on file explorer if is on sidebar and not in file explorer
|
||||
"key": "space g",
|
||||
"command": "workbench.scm.focus",
|
||||
"when": "sideBarFocus && !inputFocus && !searchViewletVisible && !scmViewletVisible"
|
||||
},
|
||||
{ // a: add
|
||||
"key": "a",
|
||||
"command": "explorer.newFile",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // p: paste
|
||||
"key": "p",
|
||||
"command": "filesExplorer.paste",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // x: cut
|
||||
"key": "x",
|
||||
"command": "filesExplorer.cut",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // d: delete
|
||||
"key": "d",
|
||||
"command": "deleteFile",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // r: rename
|
||||
"key": "r",
|
||||
"command": "renameFile",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // s: open in vertical split / to side
|
||||
"key": "s",
|
||||
"command": "explorer.openToSide",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // A: add folder
|
||||
"key": "shift+a",
|
||||
"command": "explorer.newFolder",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // C: Copy path
|
||||
"key": "shift+c",
|
||||
"command": "copyFilePath",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // E: Open in File Explorer
|
||||
"key": "shift+e",
|
||||
"command": "revealFileInOS",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // E: Open in File Explorer (WSL)
|
||||
"key": "shift+e",
|
||||
"command": "remote-wsl.revealInExplorer",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus && remoteName == 'wsl'"
|
||||
},
|
||||
{ // O: Open with System App
|
||||
"key": "shift+o",
|
||||
"command": "openInExternalApp.open",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // Y: Copy Relative Path
|
||||
"key": "shift+y",
|
||||
"command": "copyRelativeFilePath",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // R: Copy Relative Path
|
||||
"key": "shift+r",
|
||||
"command": "workbench.files.action.refreshFilesExplorer",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
{ // T: Open in terminal
|
||||
"key": "shift+t",
|
||||
"command": "openInIntegratedTerminal",
|
||||
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Vim-like Hover Browsing
|
||||
{
|
||||
"key": "h",
|
||||
"command": "editor.action.scrollLeftHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
{
|
||||
"key": "n",
|
||||
"command": "editor.action.scrollDownHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"command": "editor.action.scrollUpHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
{
|
||||
"key": "i",
|
||||
"command": "editor.action.scrollRightHover",
|
||||
"when": "editorHoverFocused"
|
||||
},
|
||||
// #endregion
|
||||
// #region Vim-like Jupyter Navigation
|
||||
{
|
||||
"key": "n",
|
||||
"command": "notebook.focusNextEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'none' && notebookEditorCursorAtBoundary != 'top'"
|
||||
},
|
||||
{
|
||||
"key": "j",
|
||||
"command": "-notebook.focusNextEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'none' && notebookEditorCursorAtBoundary != 'top'"
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"command": "notebook.focusPreviousEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'bottom' && notebookEditorCursorAtBoundary != 'none'"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-notebook.focusPreviousEditor",
|
||||
"when": "editorTextFocus && inputFocus && notebookEditorFocused && vim.mode == 'Normal' && notebookEditorCursorAtBoundary != 'bottom' && notebookEditorCursorAtBoundary != 'none'"
|
||||
},
|
||||
// #endregion
|
||||
// #region Git / Source Control
|
||||
// { // Alt+Enter: Send Commit when editing commit message
|
||||
// "key": "alt+enter",
|
||||
// "command": "git.commitMessageAccept",
|
||||
// "when": "editorLangId=\"git-commit\""
|
||||
// },
|
||||
{
|
||||
"key": "ctrl+shift+g c",
|
||||
"command": "-gitlens.showQuickCommitFileDetails",
|
||||
"when": "editorTextFocus && !gitlens:disabled && config.gitlens.keymap == 'chorded'"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+g s",
|
||||
"command": "git.stageAll"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+g g",
|
||||
"command": "workbench.view.scm",
|
||||
"when": "workbench.scm.active"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+g",
|
||||
"command": "-workbench.view.scm",
|
||||
"when": "workbench.scm.active"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+shift+b",
|
||||
"command": "editor.action.goToSelectionAnchor"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+shift+i",
|
||||
"command": "workbench.action.selectProductIconTheme"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l p",
|
||||
"command": "-extension.openPrGitProvider"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l g",
|
||||
"command": "-extension.openInGitHub"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l c",
|
||||
"command": "-extension.copyGitHubLinkToClipboard"
|
||||
},
|
||||
// #endregion
|
||||
// #region Use ^pbnf to navigate completions
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "workbench.action.files.newUntitledFile",
|
||||
"when": "!suggestWidgetVisible && !inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "-workbench.action.files.newUntitledFile"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "selectNextSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "selectPrevSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+f",
|
||||
"command": "acceptSelectedSuggestion",
|
||||
"when": "suggestWidgetVisible && textInputFocus && !inlineSuggestionVisible"
|
||||
},
|
||||
{
|
||||
"key": "alt+f",
|
||||
"command": "editor.action.inlineSuggest.commit",
|
||||
"when": "inlineSuggestionVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+f",
|
||||
"command": "editor.action.inlineSuggest.acceptNextWord",
|
||||
"when": "inlineSuggestionVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b",
|
||||
"command": "hideSuggestWidget",
|
||||
"when": "suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b",
|
||||
"command": "editor.action.inlineSuggest.hide",
|
||||
"when": "inlineSuggestionVisible && textInputFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Terminal Control, use ^a as prefix / leader key
|
||||
// tmux-like terminal control
|
||||
{ // prefix + x : kill terminal
|
||||
"key": "ctrl+a space",
|
||||
"command": "vspacecode.space",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + x : kill terminal
|
||||
"key": "ctrl+a x",
|
||||
"command": "workbench.action.terminal.kill",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + c : create new terminal
|
||||
"key": "ctrl+a c",
|
||||
"command": "workbench.action.terminal.new",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + | : split terminal vertically
|
||||
"key": "ctrl+a shift+\\",
|
||||
"command": "workbench.action.terminal.split",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + \ : split terminal vertically
|
||||
"key": "ctrl+a \\",
|
||||
"command": "workbench.action.terminal.split",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + / : search
|
||||
"key": "ctrl+a /",
|
||||
"command": "workbench.action.terminal.focusFind",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + t : toggle terminal
|
||||
"key": "ctrl+a t",
|
||||
"command": "workbench.action.terminal.toggleTerminal",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{ // prefix + ^a: show information
|
||||
"key": "ctrl+a a",
|
||||
"command": "workbench.action.terminal.focusHover",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+i",
|
||||
"command": "-workbench.action.terminal.focusHover",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + 1 : focus terminal 1
|
||||
"key": "ctrl+a 1",
|
||||
"command": "workbench.action.terminal.focusAtIndex1",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + 2 : focus terminal 2
|
||||
"key": "ctrl+a 2",
|
||||
"command": "workbench.action.terminal.focusAtIndex2",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + 3 : focus terminal 3
|
||||
"key": "ctrl+a 3",
|
||||
"command": "workbench.action.terminal.focusAtIndex3",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"
|
||||
},
|
||||
{ // prefix + g : Go to recent directory
|
||||
"key": "ctrl+a g",
|
||||
"command": "workbench.action.terminal.goToRecentDirectory",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+g",
|
||||
"command": "-workbench.action.terminal.goToRecentDirectory",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{ // prefix + d : detach terminal
|
||||
"key": "ctrl+a d",
|
||||
"command": "workbench.action.terminal.detachSession",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{ // prefix + a : attach to session
|
||||
"key": "ctrl+a a",
|
||||
"command": "workbench.action.terminal.attachToSession",
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a h",
|
||||
"command": "workbench.action.terminal.focusPreviousPane",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a i",
|
||||
"command": "workbench.action.terminal.focusNextPane",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+H",
|
||||
"command": "workbench.action.terminal.resizePaneLeft",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+N",
|
||||
"command": "workbench.action.terminal.resizePaneDown",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+E",
|
||||
"command": "workbench.action.terminal.resizePaneUp",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a shift+I",
|
||||
"command": "workbench.action.terminal.resizePaneRight",
|
||||
"when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
|
||||
},
|
||||
// #endregion
|
||||
// #region Misc
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "workbench.action.files.openFileFolder",
|
||||
"when": "isMacNative && openFolderWorkspaceSupport"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+o",
|
||||
"command": "-workbench.action.files.openFileFolder",
|
||||
"when": "isMacNative && openFolderWorkspaceSupport"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "-extension.vim_ctrl+p",
|
||||
"when": "editorTextFocus && vim.active && vim.use<C-p> && !inDebugRepl || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'CommandlineInProgress' || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+o",
|
||||
"command": "-workbench.action.files.openFolderViaWorkspace",
|
||||
"when": "!openFolderWorkspaceSupport && workbenchState == 'workspace'"
|
||||
},
|
||||
{
|
||||
"key": "f9",
|
||||
"command": "csdevkit.debug.noDebugFileLaunch"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+h",
|
||||
"command": "-editor.action.startFindReplaceAction",
|
||||
"when": "editorFocus || editorIsOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+h",
|
||||
"command": "-extension.vim_ctrl+h",
|
||||
"when": "editorTextFocus && vim.active && vim.use<C-h> && !inDebugRepl"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+r",
|
||||
"command": "-workbench.action.reloadWindow",
|
||||
"when": "isDevelopment"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+alt+r",
|
||||
"command": "-workbench.action.terminal.runRecentCommand",
|
||||
"when": "terminalFocus && terminalHasBeenCreated && !accessibilityModeEnabled || terminalFocus && terminalProcessSupported && !accessibilityModeEnabled"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+r",
|
||||
"command": "-workbench.action.terminal.runRecentCommand",
|
||||
"when": "accessibilityModeEnabled && terminalFocus && terminalHasBeenCreated || accessibilityModeEnabled && terminalFocus && terminalProcessSupported || accessibilityModeEnabled && accessibleViewIsShown && terminalHasBeenCreated && accessibleViewCurrentProviderId == 'terminal' || accessibilityModeEnabled && accessibleViewIsShown && terminalProcessSupported && accessibleViewCurrentProviderId == 'terminal'"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+r",
|
||||
"command": "-rerunSearchEditorSearch",
|
||||
"when": "inSearchEditor"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+r",
|
||||
"command": "-editor.action.refactor",
|
||||
"when": "editorHasCodeActionsProvider && textInputFocus && !editorReadonly"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+r",
|
||||
"command": "workbench.action.quickOpenNavigatePreviousInRecentFilesPicker",
|
||||
"when": "inQuickOpen && inRecentFilesPicker"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+l",
|
||||
"command": "cursorLineStart",
|
||||
"when": "textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "space",
|
||||
"command": "vspacecode.space",
|
||||
"when": "activeEditorGroupEmpty && focusedView == '' && !whichkeyActive && !inputFocus"
|
||||
},
|
||||
{
|
||||
"key": "space",
|
||||
"command": "vspacecode.space",
|
||||
"when": "sideBarFocus && !inputFocus && !whichkeyActive"
|
||||
},
|
||||
{
|
||||
"key": "tab",
|
||||
"command": "extension.vim_tab",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert' && editorLangId != 'magit'"
|
||||
},
|
||||
{
|
||||
"key": "tab",
|
||||
"command": "-extension.vim_tab",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
|
||||
},
|
||||
{
|
||||
"key": "x",
|
||||
"command": "magit.discard-at-point",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "k",
|
||||
"command": "-magit.discard-at-point"
|
||||
},
|
||||
{
|
||||
"key": "-",
|
||||
"command": "magit.reverse-at-point",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "v",
|
||||
"command": "-magit.reverse-at-point"
|
||||
},
|
||||
{
|
||||
"key": "shift+-",
|
||||
"command": "magit.reverting",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "shift+v",
|
||||
"command": "-magit.reverting"
|
||||
},
|
||||
{
|
||||
"key": "shift+o",
|
||||
"command": "magit.resetting",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "shift+x",
|
||||
"command": "-magit.resetting"
|
||||
},
|
||||
{
|
||||
"key": "x",
|
||||
"command": "-magit.reset-mixed"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+u x",
|
||||
"command": "-magit.reset-hard"
|
||||
},
|
||||
{
|
||||
"key": "y",
|
||||
"command": "-magit.show-refs"
|
||||
},
|
||||
{
|
||||
"key": "y",
|
||||
"command": "vspacecode.showMagitRefMenu",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode == 'Normal'"
|
||||
},
|
||||
{
|
||||
"key": "g",
|
||||
"command": "-magit.refresh",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "g",
|
||||
"command": "vspacecode.showMagitRefreshMenu",
|
||||
"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "workbench.action.quickOpenSelectNext",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "workbench.action.quickOpenSelectPrevious",
|
||||
"when": "inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "selectNextSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "selectPrevSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "acceptSelectedSuggestion",
|
||||
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "showNextParameterHint",
|
||||
"when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "showPrevParameterHint",
|
||||
"when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "selectNextCodeAction",
|
||||
"when": "codeActionMenuVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "selectPrevCodeAction",
|
||||
"when": "codeActionMenuVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "acceptSelectedCodeAction",
|
||||
"when": "codeActionMenuVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+h",
|
||||
"command": "file-browser.stepOut",
|
||||
"when": "inFileBrowser"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "file-browser.stepIn",
|
||||
"when": "inFileBrowser"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+oem_4",
|
||||
"command": "whichkey.undoKey",
|
||||
"when": "whichkeyVisible"
|
||||
},
|
||||
{
|
||||
"key": "alt+e",
|
||||
"command": "editor.action.insertCursorAbove",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+alt+up",
|
||||
"command": "-editor.action.insertCursorAbove",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "alt+n",
|
||||
"command": "editor.action.insertCursorBelow",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+alt+down",
|
||||
"command": "-editor.action.insertCursorBelow",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
// #endregion
|
||||
// #region Ctrl+W Remaps (Vim-like)
|
||||
{
|
||||
"key": "ctrl+w h",
|
||||
"command": "workbench.action.navigateLeft"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+h",
|
||||
"command": "workbench.action.toggleSidebarVisibility"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w l",
|
||||
"command": "workbench.action.navigateRight"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+l",
|
||||
"command": "workbench.action.toggleAuxiliaryBar"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w j",
|
||||
"command": "workbench.action.navigateDown"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+j",
|
||||
"command": "workbench.action.togglePanel"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w k",
|
||||
"command": "workbench.action.navigateUp"
|
||||
},
|
||||
{ // original ^w
|
||||
"key": "ctrl+w ctrl+w",
|
||||
"command": "workbench.action.closeActiveEditor",
|
||||
"when": "editorFocus || inSettingsEditor || inKeybindings || inWelcome"
|
||||
},
|
||||
{ // :only
|
||||
"key": "ctrl+w o",
|
||||
"command": "runCommands",
|
||||
"args": {
|
||||
"commands": [
|
||||
"workbench.action.joinAllGroups",
|
||||
"workbench.action.maximizeEditorHideSidebar"
|
||||
]
|
||||
}
|
||||
},
|
||||
{ // :only
|
||||
"key": "ctrl+w ctrl+o",
|
||||
"command": "runCommands",
|
||||
"args": {
|
||||
"commands": [
|
||||
"workbench.action.joinAllGroups",
|
||||
"workbench.action.maximizeEditorHideSidebar"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w ctrl+w",
|
||||
"command": "workbench.action.closeGroup",
|
||||
"when": "activeEditorGroupEmpty && multipleEditorGroups"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w",
|
||||
"command": "-workbench.action.closeGroup",
|
||||
"when": "activeEditorGroupEmpty && multipleEditorGroups"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w d",
|
||||
"command": "editor.action.revealDefinitionAside"
|
||||
},
|
||||
// #endregion
|
||||
// #region Emacs like Cursor Movement
|
||||
{
|
||||
"key": "ctrl+f",
|
||||
"command": "cursorRight",
|
||||
"when": "textInputFocus && !inlineEditIsVisible && !suggestWidgetVisible && !inlineSuggestionVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b",
|
||||
"command": "cursorLeft",
|
||||
"when": "textInputFocus && !inlineEditIsVisible && !suggestWidgetVisible && !inlineSuggestionVisible"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+n",
|
||||
"command": "cursorDown",
|
||||
"when": "textInputFocus && !suggestWidgetVisible && !inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "cursorUp",
|
||||
"when": "textInputFocus && !suggestWidgetVisible && !inQuickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+a",
|
||||
"command": "cursorHome",
|
||||
"when": "textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+a",
|
||||
"command": "cursorEnd",
|
||||
"when": "editor.action.selectAll"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+a",
|
||||
"command": "editor.action.selectAll"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+e",
|
||||
"command": "cursorEnd",
|
||||
"when": "textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "alt+b",
|
||||
"command": "cursorWordStartLeft",
|
||||
"when": "textInputFocus"
|
||||
},
|
||||
{
|
||||
"key": "alt+f",
|
||||
"command": "cursorWordStartRight",
|
||||
"when": "textInputFocus && !inlineEditIsVisible && !suggestWidgetVisible && !inlineSuggestionVisible"
|
||||
},
|
||||
// #endregion
|
||||
{
|
||||
"key": "alt+q",
|
||||
"command": "vspacecode.space"
|
||||
},
|
||||
// #region Search View
|
||||
{ // Focus on search list, therefore can use n/e to move up/down
|
||||
"key": "escape",
|
||||
"command": "search.action.focusSearchList",
|
||||
"when": "searchViewletFocus && inputBoxFocus"
|
||||
},
|
||||
{ // Focus on main input box
|
||||
"key": "l",
|
||||
"command": "workbench.action.replaceInFiles",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "r",
|
||||
"command": "toggleSearchRegex",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "w",
|
||||
"command": "toggleSearchWholeWord",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "c",
|
||||
"command": "toggleSearchCaseSensitive",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "p",
|
||||
"command": "toggleSearchPreserveCase",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "i",
|
||||
"command": "search.action.focusFilesToInclude",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "shift+e",
|
||||
"command": "search.action.focusFilesToExclude",
|
||||
"when": "searchViewletFocus && !inputBoxFocus"
|
||||
},
|
||||
{
|
||||
"key": "shift+alt+3",
|
||||
"command": "editor.action.commentLine",
|
||||
"when": "editorTextFocus && !editorReadonly"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+/",
|
||||
"command": "-editor.action.commentLine",
|
||||
"when": "editorTextFocus && !editorReadonly"
|
||||
},
|
||||
// #endregion
|
||||
//#region Debugger
|
||||
{
|
||||
"key": "c",
|
||||
"command": "workbench.action.debug.continue",
|
||||
"when": "inDebugMode && debugState == 'stopped' && vim.mode == 'Normal' && editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "t",
|
||||
"command": "workbench.action.debug.stepInto",
|
||||
"when": "inDebugMode && debugState == 'stopped' && vim.mode == 'Normal' && editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "s",
|
||||
"command": "workbench.action.debug.stepOver",
|
||||
"when": "inDebugMode && debugState == 'stopped' && vim.mode == 'Normal' && editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "r",
|
||||
"command": "workbench.action.debug.restart",
|
||||
"when": "inDebugMode && debugState == 'stopped' && vim.mode == 'Normal' && editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "g c",
|
||||
"command": "editor.debug.action.runToCursor",
|
||||
"when": "inDebugMode && debugState == 'stopped' && vim.mode == 'Normal' && editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "g h",
|
||||
"command": "editor.debug.action.showDebugHover",
|
||||
"when": "inDebugMode && debugState == 'stopped' && vim.mode == 'Normal' && editorFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+w f",
|
||||
"command": "search.action.openNewEditorToSide"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+shift+c",
|
||||
"command": "vspacecode.copyFilenameBase"
|
||||
}
|
||||
]
|
||||
173
misc/vscode/vscode.former.vimrc
Normal file
173
misc/vscode/vscode.former.vimrc
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
" ~/.config/vscode/vscode.vimrc
|
||||
" New-Item -ItemType SymbolicLink -Path ~\.config\vscode\vscode.vimrc -Target ~\.dotfiles\vscode\vscode.vimrc
|
||||
" ln -sf $DOTFILES/vscode/vscode.vimrc $XDG_CONFIG_HOME/vscode/vscode.vimrc
|
||||
" And go to vscode vim setting:
|
||||
"vim.vimrc.path": "$HOME/.config/vscode/vscode.vimrc",
|
||||
|
||||
|
||||
" Arrow remap
|
||||
noremap n j
|
||||
noremap e k
|
||||
noremap i l
|
||||
|
||||
" Switch between tabs
|
||||
noremap H :bprevious<CR>
|
||||
noremap I :bnext<CR>
|
||||
|
||||
noremap N 5j
|
||||
noremap E 5k
|
||||
|
||||
" Similar position to i
|
||||
" The `noremap` implements text-object-like behavior in VSCodeVim
|
||||
noremap l i
|
||||
noremap L I
|
||||
" ne[k]st
|
||||
noremap k n
|
||||
noremap K N
|
||||
" [j]ump
|
||||
noremap j e
|
||||
noremap J E
|
||||
|
||||
" Y to yank to end of line
|
||||
noremap Y y$
|
||||
|
||||
" Define in settings.json, since this will remap <esc> under visual mode
|
||||
" noremap <esc> :nohlsearch<CR>
|
||||
|
||||
" 分词版本的w和b,支持中文,需要插件
|
||||
" 为了保证递归解析,而不是打断,使用 `nmap` 而不是 `nnoremap`
|
||||
" Comment if you don't use cjk or the plugin
|
||||
nmap w cjkWordHandler.cursorWordEndRight
|
||||
nmap b cjkWordHandler.cursorWordStartLeft
|
||||
|
||||
" keep selection after indent (define in settings.json)
|
||||
" voremap < <gv
|
||||
" voremap > >gv
|
||||
|
||||
" lsp
|
||||
noremap gi editor.action.goToImplementation
|
||||
noremap gpi editor.action.peekImplementation
|
||||
noremap gd editor.action.goToDefinition
|
||||
noremap gpd editor.action.peekDefinition
|
||||
noremap gt editor.action.goToTypeDefinition
|
||||
noremap gpt editor.action.peekTypeDefinition
|
||||
noremap gh editor.action.showDefinitionPreviewHover
|
||||
noremap gr editor.action.goToReferences
|
||||
noremap gpr editor.action.referenceSearch.trigger
|
||||
|
||||
noremap zR editor.foldAll
|
||||
|
||||
noremap <leader><leader> workbench.action.quickOpen
|
||||
noremap <leader>/ workbench.action.quickTextSearch
|
||||
noremap <leader>: workbench.action.showCommands
|
||||
noremap <leader>E workbench.view.explorer
|
||||
noremap <leader>- workbench.action.splitEditorDown
|
||||
noremap <leader>| workbench.action.splitEditorRight
|
||||
noremap <leader>\ workbench.action.splitEditorRight
|
||||
|
||||
" <leader>a : +ai/action
|
||||
noremap <leader>aa inlineChat.start
|
||||
noremap <leader>aA workbench.panel.chat
|
||||
noremap <leader>ae workbench.action.chat.openEditSession
|
||||
|
||||
" <leader>b : +buffer
|
||||
noremap <leader>bb workbench.action.showAllEditors
|
||||
noremap <leader>bd :bdelete<CR>
|
||||
noremap <leader>bh :bprevious<CR>
|
||||
noremap <leader>bi :bnext<CR>
|
||||
noremap <leader>bp :bprevious<CR>
|
||||
noremap <leader>bn :bnext<CR>
|
||||
|
||||
" <leader>c : +code/compile
|
||||
noremap <leader>cr code-runner.run
|
||||
noremap <leader>cf editor.action.formatDocument
|
||||
noremap <leader>c<leader> editor.action.trimTrailingWhitespace
|
||||
noremap <leader>cs workbench.action.gotoSymbol
|
||||
noremap <leader>cS workbench.action.showAllSymbols
|
||||
noremap <leader>ce editor.action.marker.next
|
||||
noremap <leader>cE editor.action.marker.prev
|
||||
noremap <leader>cg editor.action.dirtydiff.next
|
||||
noremap <leader>cG editor.action.dirtydiff.previous
|
||||
noremap <leader>cR editor.action.rename
|
||||
|
||||
" <leader>d : +debug
|
||||
|
||||
" <leader>f : +file
|
||||
noremap <leader>ff workbench.action.quickOpen
|
||||
noremap <leader>fF workbench.view.search
|
||||
noremap <leader>fc workbench.action.openSettings
|
||||
noremap <leader>fC workbench.action.openFolderSettingsFile
|
||||
noremap <leader>fe workbench.view.explorer
|
||||
noremap <leader>fo openInExternalApp.open
|
||||
noremap <leader>fr workbench.action.showAllEditorsByMostRecentlyUsed
|
||||
" Can only rename tracked files
|
||||
noremap <leader>fR git.rename
|
||||
" noremap <leader>fs workbench.action.search.toggleQueryDetails
|
||||
noremap <leader>ft workbench.action.terminal.toggleTerminal
|
||||
noremap <leader>fx workbench.view.extensions
|
||||
|
||||
" <leader>g : +git
|
||||
noremap <leader>gg workbench.view.scm
|
||||
noremap <leader>gS git.stageAll
|
||||
|
||||
" <leader>h : +help
|
||||
|
||||
" <leader>j : +jump
|
||||
noremap <leader>jj workbench.action.gotoLine
|
||||
|
||||
" <leader>l : +language (define in settings.json)
|
||||
|
||||
" <leader>p : +project (requires Project Manager extension)
|
||||
noremap <leader>pp projectManager.listProjects
|
||||
noremap <leader>pP projectManager.listAnyProjects#sideBarAny
|
||||
noremap <leader>pc projectManager.openSettings#sideBarAny
|
||||
noremap <leader>pe projectManager.editProjects
|
||||
noremap <leader>pf projectManager.addToFavorites
|
||||
noremap <leader>pF projectManager.filterProjectsByTag
|
||||
noremap <leader>pg projectManager.listGitProjects#sideBarGit
|
||||
noremap <leader>pr workbench.action.openRecent
|
||||
noremap <leader>ps projectManager.saveProject
|
||||
|
||||
" <leader>q : +quit
|
||||
noremap <leader>qq :quit<CR>
|
||||
noremap <leader>qQ :qall<CR>
|
||||
noremap <leader>Q :quit<CR>
|
||||
|
||||
" <leader>r : +refactor
|
||||
|
||||
" <leader>s : +search
|
||||
|
||||
" <leader>t : +test
|
||||
noremap <leader>tt testing.runAll
|
||||
noremap <leader>tT testing.debugAll
|
||||
noremap <leader>ta testing.runAll
|
||||
noremap <leader>tA testing.debugAll
|
||||
noremap <leader>tf testing.reRunFailedTests
|
||||
noremap <leader>tF testing.debugFailedTests
|
||||
noremap <leader>tl testing.reRunLastRun
|
||||
noremap <leader>tL testing.debugLastRun
|
||||
noremap <leader>tc testing.runCurrentTest
|
||||
noremap <leader>tC testing.debugCurrentTest
|
||||
noremap <leader>tx testing.cancelTestRun
|
||||
|
||||
" <leader>u : +ui
|
||||
noremap <leader>ui workbench.action.selectTheme
|
||||
noremap <leader>uw editor.action.toggleWordWrap
|
||||
noremap <leader>uz workbench.action.toggleZenMode
|
||||
|
||||
" <leader>w : +write/window
|
||||
noremap <leader>ww :write<CR>
|
||||
noremap <leader>wa :wall<CR>
|
||||
noremap <leader>wq :wq<CR>
|
||||
noremap <leader>W :write<CR>
|
||||
noremap <leader>wh workbench.action.focusLeftGroup
|
||||
noremap <leader>wH workbench.action.splitEditorLeft
|
||||
noremap <leader>wn workbench.action.focusBelowGroup
|
||||
noremap <leader>wN workbench.action.splitEditorDown
|
||||
noremap <leader>we workbench.action.focusAboveGroup
|
||||
noremap <leader>wE workbench.action.splitEditorUp
|
||||
noremap <leader>wi workbench.action.focusRightGroup
|
||||
noremap <leader>wI workbench.action.splitEditorRight
|
||||
noremap <leader>w- workbench.action.splitEditorDown
|
||||
noremap <leader>w| workbench.action.splitEditorRight
|
||||
noremap <leader>w\ workbench.action.splitEditorRight
|
||||
79
misc/vscode/vscode.vimrc
Normal file
79
misc/vscode/vscode.vimrc
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
" ~/.config/vscode/vscode.vimrc
|
||||
" New-Item -ItemType SymbolicLink -Path ~\.config\vscode\vscode.vimrc -Target ~\.dotfiles\vscode\vscode.vimrc
|
||||
" ln -sf $DOTFILES/vscode/vscode.vimrc $XDG_CONFIG_HOME/vscode/vscode.vimrc
|
||||
" And go to vscode vim setting:
|
||||
"vim.vimrc.path": "$HOME/.config/vscode/vscode.vimrc",
|
||||
|
||||
" For all available options see
|
||||
" https://github.com/VSCodeVim/Vim/blob/d41e286e9238b004f02b425d082d3b4181d83368/src/configuration/vimrc.ts#L120-L407
|
||||
|
||||
|
||||
" Use VSpaceCode instead of <leader>
|
||||
noremap <space> vspacecode.space
|
||||
|
||||
|
||||
" Switch between tabs
|
||||
nnoremap H :bprevious<CR>
|
||||
nnoremap L :bnext<CR>
|
||||
vnoremap H ^
|
||||
xnoremap H ^
|
||||
onoremap H ^
|
||||
vnoremap L $
|
||||
xnoremap L $
|
||||
onoremap L $
|
||||
|
||||
|
||||
noremap J 5j
|
||||
noremap K 5k
|
||||
|
||||
" Similar position to i
|
||||
" The `noremap` implements text-object-like behavior in VSCodeVim
|
||||
|
||||
" Y to yank to end of line
|
||||
noremap Y y$
|
||||
|
||||
nnoremap <esc> removeSecondaryCursors
|
||||
|
||||
|
||||
" lsp
|
||||
noremap gi editor.action.goToImplementation
|
||||
noremap gpi editor.action.peekImplementation
|
||||
noremap gd editor.action.goToDefinition
|
||||
noremap gpd editor.action.peekDefinition
|
||||
noremap gt editor.action.goToTypeDefinition
|
||||
noremap gpt editor.action.peekTypeDefinition
|
||||
noremap gh editor.action.showDefinitionPreviewHover
|
||||
noremap gr editor.action.goToReferences
|
||||
noremap gpr editor.action.referenceSearch.trigger
|
||||
noremap ga editor.action.quickFix
|
||||
|
||||
" Rename, or [c]hange [d]efinition
|
||||
nnoremap cd editor.action.rename
|
||||
|
||||
" Requires matchit by redguardtoo
|
||||
" nnoremap % extension.matchitJumpItems
|
||||
|
||||
noremap zR editor.foldAll
|
||||
|
||||
" keep selection after indent
|
||||
vnoremap < editor.action.outdentLines
|
||||
vnoremap > editor.action.indentLines
|
||||
|
||||
nnoremap [g editor.action.editor.previousChange
|
||||
nnoremap ]g editor.action.editor.nextChange
|
||||
|
||||
" 分词版本的w和b,支持中文,需要插件
|
||||
" 为了保证递归解析,而不是打断,使用 `nmap` 而不是 `nnoremap`
|
||||
" Comment if you don't use cjk or the plugin
|
||||
" This is buggy
|
||||
"nmap w cjkWordHandler.cursorWordEndRight
|
||||
"nmap b cjkWordHandler.cursorWordStartLeft
|
||||
|
||||
" <C-w> will be parsed by VSCode itself.
|
||||
" noremap <C-w>n <C-w>j
|
||||
" noremap <C-w>e <C-w>k
|
||||
" noremap <C-w>i <C-w>l
|
||||
" noremap <C-w>x workbench.action.toggleEditorGroupLayout
|
||||
" " Use C-w C-w as original C-w
|
||||
" noremap <C-w><C-w> workbench.action.closeActiveEditor
|
||||
" noremap <C-w><A-n> workbench.action.togglePanel
|
||||
Loading…
Add table
Add a link
Reference in a new issue