我正在为 codemirror 创建一个新的简单模式。
我希望当用户按下“制表符”时,整行都会缩进(而不是光标之后的行的一部分,将行“拆分”成两部分)。
最简单的方法是什么?
注意:相应的代码不必在模式中定义。任何其他方法(例如添加或配置)也可以。
我正在为 codemirror 创建一个新的简单模式。
我希望当用户按下“制表符”时,整行都会缩进(而不是光标之后的行的一部分,将行“拆分”成两部分)。
最简单的方法是什么?
注意:相应的代码不必在模式中定义。任何其他方法(例如添加或配置)也可以。
这应该有效。 jsfiddle
extraKeys: {
"Tab": function(cm){
// get cursor position
var pos = cm.getCursor();
// set cursor position to the begining of the line.
cm.setCursor({ line: pos.line, ch: 0 });
// insert a tab
cm.replaceSelection("\t", "end");
// set cursor position to original.
cm.setCursor({ line: pos.line, ch: pos.ch + 1 });
}
}
关于手册:
extraKeys: {
'Tab': 'indentAuto'
}