因此,您可以使用setValue
设置ace编辑器的值,但在设置值后,编辑器将选择编辑器的整个值。你怎么禁用这个?这意味着当我将ace编辑器的值设置为Hello world
时,它不会突出显示Hello world
答案 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撤消动作:)