diff --git a/lib/ace/keyboard/emacs.js b/lib/ace/keyboard/emacs.js index f0df7d87..25f22a52 100644 --- a/lib/ace/keyboard/emacs.js +++ b/lib/ace/keyboard/emacs.js @@ -429,7 +429,13 @@ exports.handler.addCommands({ }, exchangePointAndMark: { exec: function(editor) { - var range = editor.selection.getRange(); + var sel = editor.selection; + var range = sel.getRange(); + if (range.isEmpty()) { + var lastMark = editor.getLastEmacsMark(); + sel.selectToPosition(lastMark); + return; + } editor.selection.setSelectionRange(range, !editor.selection.isBackwards()); }, readonly: true,