我已将Code Mirror作为插件插入CMS系统。
我有一个问题,如果我选择多行并按Tab键删除行。
Code Mirror演示网站上不会发生这种情况。我找不到配置选项来启用或禁用多个缩进。
这是我的配置代码:
this.CodeArea = CodeMirror.fromTextArea(codeArea, {
lineNumbers: true,
mode: { name: "xml", htmlMode: true },
onChange : function (editor) {
editor.save();
}
});
我不确定我错过了什么。有什么想法吗?
答案 0 :(得分:11)
CodeMirror javascripts在your version和demo version之间有所不同:
在2036行附近的演示版中,您的版本中缺少以下代码块:
defaultTab: function(cm) {
if (cm.somethingSelected()) cm.indentSelection("add");
else cm.replaceSelection("\t", "end");
}
以及与CodeMirror.keyMap
相关的一系列功能。
比较两者并合并缺失的位,或者只使用演示版本中的脚本。
答案 1 :(得分:0)
在我的情况下,发生了这种情况,因为我使用了CodeMirror官方文档中的自定义代码段,该代码片段将Tab键映射到插入空格而不是制表符:
editor.setOption("extraKeys", {
Tab: function(cm) {
var spaces = Array(cm.getOption("indentUnit") + 1).join(" ");
cm.replaceSelection(spaces);
}
});
删除此自定义代码段使阻止列表再次起作用,默认情况下使用空格而不是制表符。