97

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

4

6 回答 6

175

您可以使用第二个参数来控制 setValue 之后的光标位置

editor.setValue(str, -1) // moves cursor to the start
editor.setValue(str, 1) // moves cursor to the end
于 2013-09-05T06:28:19.273 回答
17

您甚至可以在执行 setValue(); 之后使用 clearSelection();

editor.setValue("Hello World");
editor.clearSelection(); // This will remove the highlight over the text
于 2017-02-06T08:54:51.657 回答
10

这对我有用!

editor.setValue(editor.getValue(), 1);
于 2013-12-19T07:40:51.507 回答
8

我不确定 editor.setValue() 是否是过去的遗留物还是什么,但设置编辑器内容的正确方法是

editor.session.setValue(text);

或者

editor.getSession().setValue(text);

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

editor.setValue() 明确选择所有(并忘记取消选择它);但没有理由使用它。

于 2021-01-16T21:29:26.753 回答
0

我一直有你同样的问题。

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

Editor.setWrapBehavioursEnabled(Boolean enabled)

创建编辑器后立即使用它。

这对我来说非常有效。此方法与用户共享的方法的区别在于插入符号的位置没有改变,您可以使用 自己移动它Editor.selection.moveTo(row, column),这样用户在使用 CTRL+Z 撤消时不会遇到奇怪的插入符号位置变化一种行为 :)

于 2017-04-17T20:35:09.143 回答
0
 var prevtext = $("#editor").val();
 prevtext = prevtext + "<br/>";
 $("#editor").val(prevtext).blur();
于 2016-08-10T07:31:33.563 回答