为ace编辑器设置值而不选择整个编辑器

时间:2013-09-04 12:44:28

标签: ace-editor

因此,您可以使用setValue设置ace编辑器的值,但在设置值后,编辑器将选择编辑器的整个值。你怎么禁用这个?这意味着当我将ace编辑器的值设置为Hello world时,它不会突出显示Hello world

6 个答案:

答案 0 :(得分:141)

您可以使用第二个参数来控制setValue

之后的光标位置
editor.setValue(str, -1) // moves cursor to the start
editor.setValue(str, 1) // moves cursor to the end

答案 1 :(得分:9)

这对我有用!

editor.setValue(editor.getValue(), 1);

答案 2 :(得分:9)

执行setValue();

后,您甚至可以使用clearSelection()
editor.setValue("Hello World");
editor.clearSelection(); // This will remove the highlight over the text

答案 3 :(得分:2)

我不确定 editor.setValue() 是旧时代的残余还是什么,但设置编辑器内容的正确方法是

editor.session.setValue(text);

editor.getSession().setValue(text);

这不会选择文本,因此无需执行此页面上提到的任何操作。

editor.setValue() 显式全选(忘记取消选择);但没有理由使用它。

答案 4 :(得分:0)

 var prevtext = $("#editor").val();
 prevtext = prevtext + "<br/>";
 $("#editor").val(prevtext).blur();

答案 5 :(得分:0)

我一直有同样的问题。

即使你可以将第二个参数设置为 1 -1 ,我认为你也应该检查一下:https://ace.c9.io/api/editor.html#Editor.setValue

Editor.setWrapBehavioursEnabled(Boolean enabled)

创建编辑后立即使用此功能。

这对我很有用。 此方法与a user共享的方法之间的区别在于插入符号的位置未更改,您可以使用Editor.selection.moveTo(row, column)自行移动它,这样用户在使用时不会遇到奇怪的插入位置更改比方说,CTRL + Z撤消动作:)