我正在使用 CodeMirror 进行代码编辑,当我按 INS(插入键)时,它的行为就像在任何普通文本编辑器中一样,在改写和插入模式之间切换,但我不希望这样。
我希望它像平常一样
<textarea>
,实际上没有任何改变。
我能以某种方式做到这一点吗?
我没有使用过CodeMirror,但是文档中有一个功能可以切换覆盖/正常插入模式 (https://codemirror.net/doc/manual.html#usage):
cm.toggleOverwrite(?value: boolean)
Switches between overwrite and normal insert mode (when not given an argument), or sets the overwrite mode to a specific state (when given an argument).
您可以监听用户按下
insert
键并覆盖传递到该函数的值,以使其保持正常插入模式。
为了扩展 @httpNick 的答案,此代码片段应重新映射 Insert 键以不切换覆盖(或者更确切地说,明确使其不覆盖)。
editor.setOption("extraKeys", {
Insert: (cm) => {
cm.toggleOverwrite(false);
}
});
这是文档解释按键映射的地方:https://codemirror.net/5/doc/manual.html#keymaps
“Insert”键来自此键映射:https://codemirror.net/5/doc/manual.html#commands