我正在使用Ace编辑器,我只能在单个游标上执行功能,而不能在多个游标上执行 例如
editor.navigateLineStart();
如果有一个光标,会将光标移动到行的开头但是如果有多个光标则不会移动光标
这可以通过键入(left-home)手动完成 因为下面的代码在文件ace.js中,但我不明白如何将multiSelectAction设置为“forEach”或者如果这样甚至可以帮助
{name: "gotolinestart",
bindKey: bindKey("Alt-Left|Home", "Command-Left|Home|Ctrl-A"),
exec: function(editor) { editor.navigateLineStart(); },
multiSelectAction: "forEach",
readOnly: true
}
还有一个功能
forEachSelection(String cmd, String args)
http://ace.c9.io/#nav=api&api=editor 执行每个选择范围的命令。 但我不知道为args输入什么 我认为命令输入是“gotolinestart”但我也不确定 我可以使用一个光标而不是多个光标的其他函数包括
editor.getSelection().selectLeft();
editor.navigateLeft(args.times);
任何在ace编辑器中运行多个游标和选择的函数示例都会非常有用。
答案 0 :(得分:1)
看来文档中有一个错误,应该说forEachSelection({exec:function}, arg:any)
arg可以是任何内容,只是传递给cmd.exec
它也适用于有多个选择,所以你需要做类似
的事情if (editor.selection.rangeCount > 1)
editor.forEachSelection({exec: function() {
editor.editor.navigateLeft(10);
}})
} else
editor.editor.navigateLeft(10);
另一种方法是使用execCommand
editor.execCommand({
exec:function() {
editor.selection.selectLeft()
},
multiSelectAction: "forEach"
})