codemirror:按Tab键时如何缩进整行?

时间:2014-10-20 09:16:51

标签: javascript codemirror codemirror-modes

我正在为codemirror创建一个新的简单模式。

我希望当用户按下“tab”时,整行会缩进(而不是仅仅是光标之后的行部分,将该行分成两行)。

最简单的方法是什么?

注意:不必在模式中定义相应的代码。任何其他方法(例如添加或配置)也可以。

3 个答案:

答案 0 :(得分:7)

只需将标签的键盘映射更改为indentMore:

extraKeys: {
    "Tab": "indentMore"
}

此解决方案也不会打破选择缩进。

Fiddle

答案 1 :(得分:2)

这应该有效。 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 });
        }
     }

答案 2 :(得分:1)

关于手册:

extraKeys: {
  'Tab': 'indentAuto'
}