使い方
v-model による双方向バインディング
テキストは value ではなく modelValue でバインドされるので、ほかの Vue コンポーネントと同じように v-model を使えます。
modelValue を外部から変更すると、エディタの内容が置き換わります。そのときの表示は次の 2 つの props で制御できます。
scroll-into-view(デフォルトtrue):更新後の選択位置までスクロールします。preserve-scroll-position(デフォルトfalse):現在のスクロール位置を保ちます。ログやストリーミング出力のように、テキストを追記し続ける場合に便利です。
スロットで初期テキストを指定する
v-model の代わりに、コンポーネントの中に初期テキストを書くこともできます。使われるのは最初の子ノードのテキストだけです。
Warning
- スロットの内容は
v-modelの値を上書きするので、両方を同時に使わないでください。スロットは、読み取り専用でシンタックスハイライトを表示するだけの用途を想定しています。 - 空白が詰められないように、テキストは
<pre>で囲んでください。 - スロットは Vue 2.7 では動作しません。
読み取り専用と無効化
シンタックスハイライトの表示だけに使う場合は disabled を指定してください。
編集の挙動
Tip
tab を指定すると Tab キーがエディタ内で使われます。キーボード操作の場合は、Esc を押してから Tab を押すとエディタの外に移動できます。
キーバインドの追加
keymap に KeyBinding の配列を渡します。run が true を返すと、そのキーのデフォルトの動作は実行されません。
イベントを受け取る
各イベントの引数は イベント を参照してください。
エディタの UI を翻訳する
phrases を使うと、CodeMirror が表示する文字列(検索パネル、リンターのパネル、折りたたみマーカーなど)を翻訳できます。指定できるキーは CodeMirror の 翻訳の例 を参照してください。
Tip
vue-i18n と組み合わせる場合は、ロケールの切り替えに追従するよう phrases をリアクティブ(computed など)にしてください。翻訳表の全体と vue-i18n の例は 多言語化 を参照してください。