public void selectVimKeymap() {
    if (CodeMirrorKeymaps.isVimLoaded()) {
      doSelectVimKeymap();
    } else {
      this.requirejs.require(
          new Callback<JavaScriptObject[], Throwable>() {
            @Override
            public void onSuccess(final JavaScriptObject[] result) {
              doSelectVimKeymap();
            }

            @Override
            public void onFailure(final Throwable reason) {
              Window.alert("Could not load vim keymap, reverting to the default");
            }
          },
          new String[] {codemirrorBasePath + "lib/codemirror", codemirrorBasePath + "keymap/vim"});
    }
  }
 public void selectDefaultKeymap() {
   this.editorOverlay.setOption(
       KEYMAP, CodeMirrorKeymaps.getNativeMapping(CodeMirrorKeymaps.DEFAULT));
 }
 private void doSelectSublimeKeymap() {
   this.editorOverlay.setOption(
       KEYMAP, CodeMirrorKeymaps.getNativeMapping(CodeMirrorKeymaps.SUBLIME));
 }
 private void doSelectEmacsKeymap() {
   this.editorOverlay.setOption(
       KEYMAP, CodeMirrorKeymaps.getNativeMapping(CodeMirrorKeymaps.EMACS));
 }
 private void doSelectVimKeymap() {
   this.editorOverlay.setOption(KEYMAP, CodeMirrorKeymaps.getNativeMapping(CodeMirrorKeymaps.VIM));
 }