English

@vimee/plugin-monaco

Monaco Editor 向け Vim キーバインド

vimee の Vim エンジンを Monaco Editor(VS Code を動かしているエディター)と統合します。

インストール

npm install @vimee/core @vimee/plugin-monaco

使い方

import * as monaco from "monaco-editor";
import { attach } from "@vimee/plugin-monaco";

const editor = monaco.editor.create(document.getElementById("editor")!, {
  value: "console.log('hello');",
  language: "typescript",
});

const vim = attach(editor, {
  onChange: (value) => console.log("Content:", value),
  onModeChange: (mode) => console.log("Mode:", mode),
});

// 後でクリーンアップ
vim.destroy();

API

attach(editor, options?)

@vimee/plugin-textarea と同じオプション。.getMode().getCursor().getContent().destroy() と同じインターフェースの VimMonaco を返します。

カーソルユーティリティ

import { cursorToMonacoPosition, monacoPositionToCursor } from "@vimee/plugin-monaco";

// vimee は0ベースの位置を使用、Monaco は1ベースを使用
const monacoPos = cursorToMonacoPosition({ line: 0, col: 5 });
// { lineNumber: 1, column: 6 }

const vimeePos = monacoPositionToCursor({ lineNumber: 1, column: 6 });
// { line: 0, col: 5 }