因此,您可以设置 ace 编辑器setValue
的值,但设置值后,编辑器将选择编辑器的整个值。你如何禁用它?这意味着当我将 ace 编辑器的值设置为 时Hello world
,它不会突出显示Hello world
问问题
35398 次
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 回答