paint-brush
How to Add Custom Shortcuts and Code Snippets to VS Codeby@alexadam
5,395 reads
5,395 reads

How to Add Custom Shortcuts and Code Snippets to VS Code

by Alex AdamJuly 16th, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

On Linux, go to: File - Preferences - KeyboardShortcuts - Open Keyboard Shortcuts JSON (top-right icon) Add custom key bindings like this: `Ctrl+D` to duplicate line / selection. `Credo+Shift+L` to insert a `console.log` with the clipboard's content. To use the snippets, open a `tsx` file and type react or rcp - you'll see the snippets' names in the auto-complete pop-up.
featured image - How to Add Custom Shortcuts and Code Snippets to VS Code
Alex Adam HackerNoon profile picture


Keyboard Shortcuts

On Linux, go to:


File -> Preferences -> KeyboardShortcuts -> Open Keyboard Shortcuts JSON (top-right icon)


On Mac:


Code -> Preferences -> KeyboardShortcuts -> Open Keyboard Shortcuts JSON (top-right icon)


Then add custom key bindings like this:


Ctrl+D to duplicate line / selection:


{
  "key": "ctrl+d",
  "command": "editor.action.duplicateSelection"
}


Ctrl+Shift+L to insert a console.log with the selected text:


{
  "key": "ctrl+shift+l",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    "snippet": "console.log('${TM_SELECTED_TEXT}$1')$2;"
  }
}


Or Ctrl+Shift+L to insert a console.log with the clipboard's content:


{
  "key": "ctrl+shift+l",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    "snippet": "console.log('${CLIPBOARD}', ${CLIPBOARD})"
  }
}


More useful variables: https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables


Code Snippets

To add some React Component code snippets, on Linux, go to:


File -> Preferences -> Configure User Snippets -> search for TypescriptReact


On Mac:


Code -> Preferences -> Configure User Snippets -> search for TypescriptReact


Then paste this in the json file:


 "New React Component": {
  "prefix": ["react-component", "rc"],
  "body": ["const ${1} = () => {\n\treturn (\n\t\t<div>\n\n\t\t\n\t)\n}\n\nexport default ${1}"],
  "description": "New React Component"
 },
 "New React Component With Props": {
  "prefix": ["react-component-props", "rcp"],
  "body": ["interface I${1}Props {\n\t\n}\n\nconst ${1} = (props: I${1/(.*)/${1:/capitalize}/}Props) => {\n\treturn (\n\t\t<div>\n\n\t\t\n\t)\n}\n\nexport default ${1}"],
  "description": "New React Component With Props"
 }


To use the snippets, open a tsx file and type react or rcp -> you'll see the snippets' names in the auto-complete pop-up.


Code output example (you can edit the component's name):


const Comp1 = () => {
  return (
    <div>

    </div>
  )
}

export default Comp1

// and

interface IComp2Props {
  
}

const Comp2 = (props: IComp2Props) => {
  return (
    <div>

    </div>
  )
}

export default Comp2


More: https://code.visualstudio.com/docs/editor/userdefinedsnippets



Also published here.