Trying out Codemirror 6
March 1, 2023

This post just contains some setup code for Codemirror 6.

I have been using Codemirror 6 multiple times and I always forget the basic setup and have to look it up somewhere, so here is something to jog my memory. Btw, I love it!

Also the vim mode from replit is amazing!

Setup

$ npm create vite@latest my-project
$ npm install --save codemirror \
                     @codemirror/view \
                     @codemirror/commands \
                     # Change for your language
                     @codemirror/lang-markdown \
                     @codemirror/state \
                     @codemirror/language \
                     @replit/codemirror-vim
import {EditorView} from "@codemirror/view";
import {basicSetup} from "codemirror";
import {markdown} from "@codemirror/lang-markdown";
import {Vim, vim} from "@replit/codemirror-vim";
import {marked} from "marked";

new EditorView({
    doc: '# Hello World!',
    parent: document.getElementById('app')!!,
    extensions: [
        basicSetup,
        markdown(),
        vim(),
        EditorView.updateListener.of(update => {
            document.getElementById('rendered')!!
                .innerHTML = marked.parse(update.state.doc.toString())
        })
    ]
});

Vim.map('jj', '<Esc>', 'insert');```