Set Value for ace editor without selecting the whole editor

前端 未结 6 632
臣服心动
臣服心动 2021-02-06 20:04

So you can set value of an ace editor with setValue but after setting the value, the editor will select the whole value of the editor. How do you disable this? This

相关标签:
6条回答
  • 2021-02-06 20:34

    I'm not sure if editor.setValue() is a remnant from the old days or what, but the proper way to set an editor's content is

    editor.session.setValue(text);
    

    or

    editor.getSession().setValue(text);
    

    This will NOT select the text, so there's no need to do any of the things mentioned on this page.

    editor.setValue() explicitly selects all (and forgets to unselect it); but there's no reason to use it.

    0 讨论(0)
  • 2021-02-06 20:45
     var prevtext = $("#editor").val();
     prevtext = prevtext + "<br/>";
     $("#editor").val(prevtext).blur();
    
    0 讨论(0)
  • 2021-02-06 20:47

    This works for me!

    editor.setValue(editor.getValue(), 1);
    
    0 讨论(0)
  • 2021-02-06 20:49

    You can even use clearSelection() after you do an setValue();

    editor.setValue("Hello World");
    editor.clearSelection(); // This will remove the highlight over the text
    
    0 讨论(0)
  • 2021-02-06 20:49

    I've been having your same issue.

    Even though you can set the second parameter to either 1 or -1, I think you should also check this: https://ace.c9.io/api/editor.html#Editor.setValue

    Editor.setWrapBehavioursEnabled(Boolean enabled)
    

    Use this right after creating the editor.

    This works very well for me. The difference between this method and the one shared by a user is that the caret's position is not changed, you can move it yourself using Editor.selection.moveTo(row, column), this way the user won't experience weird caret position changes when using, say, CTRL+Z to undo an action :)

    0 讨论(0)
  • 2021-02-06 20:53

    You can use the second parameter to control cursor position after setValue

    editor.setValue(str, -1) // moves cursor to the start
    editor.setValue(str, 1) // moves cursor to the end
    
    0 讨论(0)
提交回复
热议问题