@replit/codemirror-vscode-keymap

VSCode keyboard shortcuts for Codemirror 6

Usage no npm install needed!

<script type="module">
  import replitCodemirrorVscodeKeymap from 'https://cdn.skypack.dev/@replit/codemirror-vscode-keymap';
</script>

README

CodeMirror VSCode Keymap

Run on Replit badge NPM version badge

Ports VSCode's keyboard shortcuts to CodeMirror 6.

This keymap includes shortcuts for all the official extension and replaces codemirror default keymaps:

  • autocomplete (make sure to set defaultKeymap: false when enabling this plugin)
  • closebrackets
  • commands
  • comment
  • fold
  • history
  • lint
  • search

Usage

import { EditorView, keymap } from '@codemirror/view';
import { EditorState } from '@codemirror/state';
import { javascript } from '@codemirror/lang-javascript';
import { vscodeKeymap } from "@replit/codemirror-vscode-keymap";

const doc = `
function wow() {
  function hello() {
    console.log({
      lol: 1
    })
  }
}
`

new EditorView({
  state: EditorState.create({
    doc,
    extensions: [keymap.of(vscodeKeymap), javascript()],
  }),
  parent: document.querySelector('#editor'),
});

Missing features

  • Insert cursor at end of each line selected Shift+Alt+I
  • Insert Cursor Below Ctrl+Alt+Down
  • Insert Cursor Above Ctrl+Alt+Up
  • Scroll Line DownCtrl+Down
  • Scroll Line UpCtrl+Up
  • Scroll Page DownAlt+PageDown
  • Scroll Page UpAlt+PageUp