mirror of
https://github.com/jimeh/.vscode.d.git
synced 2026-02-19 03:16:39 +00:00
Latest cursor update seems to have broken awesome-emacs-keymap's "emacsLikeTab" feature. This manually adds the same keybinding with one extra conditional check which Cursor uses when certain types of inline suggestions are used.
556 lines
18 KiB
JSON
556 lines
18 KiB
JSON
[
|
|
//
|
|
// ===========================================================================
|
|
// Command Palette
|
|
// ===========================================================================
|
|
//
|
|
{ // Show commands.
|
|
"key": "ctrl+x m",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
{ // Show commands.
|
|
"key": "ctrl+x ctrl+m",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
{ // Show commands.
|
|
"key": "ctrl+x enter",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
{ // Show commands.
|
|
"key": "alt+x",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Window
|
|
// ===========================================================================
|
|
//
|
|
{
|
|
"key": "cmd+0",
|
|
"command": "workbench.action.zoomReset"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Save
|
|
// ===========================================================================
|
|
//
|
|
{ // Save file.
|
|
"key": "ctrl+x ctrl+s",
|
|
"command": "workbench.action.files.save"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// File open
|
|
// ===========================================================================
|
|
//
|
|
{ // Open file via file browser extension.
|
|
"key": "ctrl+x ctrl+f",
|
|
"command": "file-browser.open",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Open quick open.
|
|
"key": "ctrl+x ctrl+;",
|
|
"command": "workbench.action.quickOpen"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// File rename
|
|
// ===========================================================================
|
|
//
|
|
{ // Rename file via file browser extension.
|
|
"key": "ctrl+c r",
|
|
"command": "file-browser.rename"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Switch and close editor
|
|
// ===========================================================================
|
|
//
|
|
{ // Show all editors by most recently used.
|
|
"key": "ctrl+x ctrl+b",
|
|
"command": "workbench.action.showAllEditorsByMostRecentlyUsed",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Close active editor.
|
|
"key": "ctrl+x ctrl+k",
|
|
"command": "workbench.action.closeActiveEditor",
|
|
"when": "!terminalFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Fullscreen
|
|
// ===========================================================================
|
|
//
|
|
{ // Toggle fullscreen.
|
|
"key": "ctrl+cmd+enter",
|
|
"command": "workbench.action.toggleFullScreen",
|
|
"when": "!isIOS"
|
|
},
|
|
{ // Toggle fullscreen.
|
|
"key": "cmd+enter",
|
|
"command": "workbench.action.toggleFullScreen",
|
|
"when": "!isIOS"
|
|
},
|
|
{ // Disable default toggle fullscreen keybinding.
|
|
"key": "ctrl+cmd+f",
|
|
"command": "-workbench.action.toggleFullScreen",
|
|
"when": "!isIOS"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Navigation
|
|
// ===========================================================================
|
|
//
|
|
{ // Focus next editor group.
|
|
"key": "ctrl+x ctrl+o",
|
|
"command": "workbench.action.focusNextGroup",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Focus previous editor group.
|
|
"key": "ctrl+x ctrl+i",
|
|
"command": "workbench.action.focusPreviousGroup",
|
|
"when": "!terminalFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Pane navigation
|
|
// ===========================================================================
|
|
//
|
|
{ // Navigate up.
|
|
"key": "alt+i",
|
|
"command": "workbench.action.navigateUp"
|
|
},
|
|
{ // Navigate up.
|
|
// Workaround for alt+i not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+i to cmd+alt+up.
|
|
"key": "cmd+alt+up",
|
|
"command": "workbench.action.navigateUp"
|
|
},
|
|
{ // Navigate right.
|
|
"key": "alt+l",
|
|
"command": "workbench.action.navigateRight"
|
|
},
|
|
{ // Navigate left.
|
|
"key": "alt+j",
|
|
"command": "workbench.action.navigateLeft"
|
|
},
|
|
{ // Navigate down.
|
|
"key": "alt+k",
|
|
"command": "workbench.action.navigateDown"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Editor group layout
|
|
// ===========================================================================
|
|
//
|
|
{ // Even editor widths.
|
|
"key": "ctrl+x space",
|
|
"command": "workbench.action.evenEditorWidths",
|
|
"when": "!terminalFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Move active editor group
|
|
// ===========================================================================
|
|
//
|
|
{ // Move active editor group up.
|
|
"key": "ctrl+shift+i",
|
|
"command": "workbench.action.moveActiveEditorGroupUp"
|
|
},
|
|
{ // Move active editor group down.
|
|
"key": "ctrl+shift+k",
|
|
"command": "workbench.action.moveActiveEditorGroupDown"
|
|
},
|
|
{ // Move active editor group left.
|
|
"key": "ctrl+shift+j",
|
|
"command": "workbench.action.moveActiveEditorGroupLeft"
|
|
},
|
|
{ // Move active editor group right.
|
|
"key": "ctrl+shift+l",
|
|
"command": "workbench.action.moveActiveEditorGroupRight"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Move active editor into group
|
|
// ===========================================================================
|
|
//
|
|
{ // Move active editor into group above.
|
|
"key": "alt+shift+i",
|
|
"command": "workbench.action.moveEditorToAboveGroup"
|
|
},
|
|
{ // Move active editor into group above.
|
|
// Workaround for alt+i not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+i to cmd+alt+up.
|
|
"key": "cmd+alt+shift+up",
|
|
"command": "workbench.action.moveEditorToAboveGroup"
|
|
},
|
|
{ // Move active editor into group below.
|
|
"key": "alt+shift+k",
|
|
"command": "workbench.action.moveEditorToBelowGroup"
|
|
},
|
|
{ // Move active editor into group left.
|
|
"key": "alt+shift+j",
|
|
"command": "workbench.action.moveEditorToLeftGroup"
|
|
},
|
|
{ // Move active editor into group right.
|
|
"key": "alt+shift+l",
|
|
"command": "workbench.action.moveEditorToRightGroup"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Undo/redo
|
|
// ===========================================================================
|
|
//
|
|
{ // Undo.
|
|
"key": "alt+-",
|
|
"command": "undo",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Redo.
|
|
"key": "shift+alt+-",
|
|
"command": "redo",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Text navigation
|
|
// ===========================================================================
|
|
//
|
|
{ // Forward paragraph.
|
|
"key": "alt+e",
|
|
"command": "emacs-mcx.forwardParagraph",
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Forward paragraph.
|
|
// This is a workaround for alt+e not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+e to cmd+alt+right.
|
|
"key": "cmd+alt+right",
|
|
"command": "emacs-mcx.forwardParagraph",
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Backward paragraph.
|
|
"key": "alt+a",
|
|
"command": "emacs-mcx.backwardParagraph",
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Go to symbol definition.
|
|
"key": "ctrl+t",
|
|
"command": "workbench.action.gotoSymbol",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Jump to definition.
|
|
"key": "ctrl+c ctrl+j",
|
|
"command": "editor.action.revealDefinition"
|
|
},
|
|
{ // Navigate back.
|
|
"key": "alt+g b",
|
|
"command": "workbench.action.navigateBack"
|
|
},
|
|
{ // Navigate back.
|
|
"key": "alt+g alt+b",
|
|
"command": "workbench.action.navigateBack"
|
|
},
|
|
{ // Peek symbol references.
|
|
"key": "alt+shift+/",
|
|
"command": "editor.action.referenceSearch.trigger",
|
|
"when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Text manipulation
|
|
// ===========================================================================
|
|
//
|
|
{ // Set indentation to correct level.
|
|
// This was borrowed from the awesome-emacs-keymap extension and modifed to
|
|
// add the `!cpp.shouldAcceptTab` condition for the sake of Cursor.
|
|
"key": "tab",
|
|
"command": "emacs-mcx.tabToTabStop",
|
|
"when": "editorTextFocus && !editorReadonly && !inlineSuggestionVisible && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible && !inSnippetMode && !editorTabCompletion && !editorParameterHintsVisible && !cursorAtInlineEdit && !cpp.shouldAcceptTab"
|
|
},
|
|
{ // Comment line.
|
|
"key": "ctrl+c /",
|
|
"command": "editor.action.commentLine",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Comment line.
|
|
"key": "ctrl+c ctrl+/",
|
|
"command": "editor.action.commentLine",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Format document.
|
|
"key": "ctrl+c ctrl+f",
|
|
"command": "editor.action.formatDocument",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Duplicate selection.
|
|
"key": "ctrl+x ctrl+d",
|
|
"command": "editor.action.duplicateSelection"
|
|
},
|
|
{ // Rename thing at point.
|
|
"key": "ctrl+c ctrl+.",
|
|
"command": "editor.action.rename",
|
|
"when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move lines up in editor.
|
|
"key": "alt+p",
|
|
"command": "editor.action.moveLinesUpAction",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move lines down in editor.
|
|
"key": "alt+n",
|
|
"command": "editor.action.moveLinesDownAction",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move lines down in editor.
|
|
// This is a workaround for alt+n not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+n to cmd+alt+down.
|
|
"key": "cmd+alt+down",
|
|
"command": "editor.action.moveLinesDownAction",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move cell up in notebook editor.
|
|
"key": "alt+p",
|
|
"command": "notebook.cell.moveUp",
|
|
"when": "notebookEditorFocused && !inputFocus"
|
|
},
|
|
{ // Move cell down in notebook editor.
|
|
"key": "alt+n",
|
|
"command": "notebook.cell.moveDown",
|
|
"when": "notebookEditorFocused && !inputFocus"
|
|
},
|
|
{ // Move cell down in notebook editor.
|
|
// This is a workaround for alt+n not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+n to cmd+alt+down.
|
|
"key": "cmd+alt+down",
|
|
"command": "notebook.cell.moveDown",
|
|
"when": "notebookEditorFocused && !inputFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Text selection
|
|
// ===========================================================================
|
|
//
|
|
{ // Expand selection.
|
|
"key": "alt+.",
|
|
"command": "editor.action.smartSelect.expand",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Shrink/contract selection.
|
|
"key": "alt+,",
|
|
"command": "editor.action.smartSelect.shrink",
|
|
"when": "editorTextFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Multi-cusor
|
|
// ===========================================================================
|
|
//
|
|
{ // Select all highlights.
|
|
"key": "shift+cmd+a",
|
|
"command": "editor.action.selectHighlights",
|
|
"when": "editorFocus"
|
|
},
|
|
{ // Disable default insert cursor above keybinding.
|
|
"key": "alt+cmd+up",
|
|
"command": "-editor.action.insertCursorAbove",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Insert cursor above.
|
|
"key": "alt+m",
|
|
"command": "editor.action.insertCursorAbove",
|
|
"when": "editorTextFocus && !editorHasSelection"
|
|
},
|
|
{ // Add selection to previous find match when editor has selection.
|
|
"key": "alt+m",
|
|
"command": "emacs-mcx.addSelectionToPreviousFindMatch",
|
|
"when": "editorTextFocus && editorHasSelection"
|
|
},
|
|
{ // Disable default insert cursor below keybinding.
|
|
"key": "alt+cmd+down",
|
|
"command": "-editor.action.insertCursorBelow",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Insert cursor below when editor has no selection.
|
|
"key": "alt+/",
|
|
"command": "editor.action.insertCursorBelow",
|
|
"when": "editorTextFocus && !editorHasSelection"
|
|
},
|
|
{ // Add selection to next find match when editor has selection.
|
|
"key": "alt+/",
|
|
"command": "emacs-mcx.addSelectionToNextFindMatch",
|
|
"when": "editorTextFocus && editorHasSelection"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Completion
|
|
// ===========================================================================
|
|
//
|
|
{
|
|
"key": "alt+shift+f",
|
|
"command": "editor.action.inlineSuggest.acceptNextWord"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Testing
|
|
// ===========================================================================
|
|
//
|
|
{ // Run current file.
|
|
"key": "ctrl+c , v",
|
|
// "command": "testing.runCurrentFile",
|
|
"command": "macros.runTestCurrentFile",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run with coverage for current file.
|
|
"key": "ctrl+c , ctrl+v",
|
|
"command": "macros.runTestCoverageCurrentFile",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run at cursor.
|
|
"key": "ctrl+c , s",
|
|
"command": "macros.runTestAtCursor",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run with coverage at cursor.
|
|
"key": "ctrl+c , ctrl+s",
|
|
"command": "macros.runTestCoverageAtCursor",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run all tests.
|
|
"key": "ctrl+c , a",
|
|
"command": "macros.runTestAll",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run with coverage for all tests.
|
|
"key": "ctrl+c , ctrl+a",
|
|
"command": "macros.runTestCoverageAll",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Re-run last run.
|
|
"key": "ctrl+c , l",
|
|
"command": "macros.runTestReRunLastRun",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Re-run with coverage for last run.
|
|
"key": "ctrl+c , ctrl+l",
|
|
"command": "macros.runTestCoverageLastRun",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Re-run failed tests.
|
|
"key": "ctrl+c , f",
|
|
"command": "macros.runTestReRunFailTests",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Debug failed tests.
|
|
"key": "ctrl+c , ctrl+f",
|
|
"command": "macros.runTestDebugFailTests",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Debug last run.
|
|
"key": "ctrl+c , d",
|
|
"command": "macros.runTestDebugLastRun",
|
|
"when": "editorTextFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Documentation
|
|
// ===========================================================================
|
|
//
|
|
{ // Show documentation for symbol at cursor.
|
|
"key": "ctrl+c d",
|
|
"command": "editor.action.showHover"
|
|
},
|
|
{ // Show documentation for symbol at cursor.
|
|
"key": "ctrl+c ctrl+d",
|
|
"command": "editor.action.triggerParameterHints"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// edamagit
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=kahole.magit
|
|
//
|
|
{ // Open magit status.
|
|
"key": "ctrl+x g",
|
|
"command": "magit.status"
|
|
},
|
|
{ // Disable default open magit status keybinding.
|
|
"key": "alt+x g",
|
|
"command": "-magit.status"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Project Manager
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager
|
|
//
|
|
{ // List projects.
|
|
"key": "ctrl+z ctrl+s",
|
|
"command": "projectManager.listProjects"
|
|
},
|
|
{ // Disable default list projects keybinding.
|
|
"key": "alt+cmd+p",
|
|
"command": "-projectManager.listProjects"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// dired
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=rrudi.vscode-dired
|
|
//
|
|
{ // Open dired.
|
|
"key": "ctrl+x ctrl+j",
|
|
"command": "extension.dired.open",
|
|
"when": "editorTextFocus && !inDebugRepl"
|
|
},
|
|
{ // Disable default open dired keybinding.
|
|
"key": "ctrl+x f",
|
|
"command": "-extension.dired.open",
|
|
"when": "editorTextFocus && !inDebugRepl"
|
|
},
|
|
{ // Create directory.
|
|
"key": "c",
|
|
"command": "extension.dired.createDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
{ // Disable default create directory keybinding.
|
|
"key": "shift+=",
|
|
"command": "-extension.dired.createDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
{ // Go up directory.
|
|
"key": "ctrl+l",
|
|
"command": "extension.dired.goUpDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
{ // Disable default go up directory keybinding.
|
|
"key": "shift+b",
|
|
"command": "-extension.dired.goUpDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// swiper
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=wenhoujx.swiper
|
|
//
|
|
{ // Swiper word at cursor.
|
|
"key": "alt+r",
|
|
"command": "swiper.swiper-word-at-cursor"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// Makefile task runner
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=carlos-algms.make-task-provider
|
|
//
|
|
{ // Run target.
|
|
"key": "ctrl+c enter",
|
|
"command": "make-task-provider.runTarget"
|
|
}
|
|
]
|