LoginSignup
0
1

More than 5 years have passed since last update.

JavaScriptで書かれたブラウザで動くエディタAceのキーバインドをvim, emacsにした後デフォルトに戻す方法

Last updated at Posted at 2018-01-28

背景

ブラウザで動くjavascriptエディター jsnoteを作っていた. ユーザがキーバインド(エディターの種類)をvim, emacs, aceの中から選べるようにしたかった. デフォルトはAce(Atomのブラウザ版)になっているが、設定をvimやemacsにした後、再びAceに戻す方法が分からなかった.

問題

下記のコードでvimやemacesに設定することはできる。

<script src="/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
  const editor = ace.edit('editor');             
                                                   //default Ace
  editor.setKeyboardHandler("ace/keyboard/vim");   //vim
  editor.setKeyboardHandler("ace/keyboard/emacs"); //emacs
  /*reset*/
  editor.setKeyboardHandler("ace/keyboard/");      //error
  editor.setKeyboardHandler("");                   //error
</script>

consoleで引数がおかしいと言われて実行できない

対処法

nullを入れるとデフォルトのAceに戻る

<script src="/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
  const editor = ace.edit('editor');             
                                                   //default Ace
  editor.setKeyboardHandler("ace/keyboard/vim");   //vim
  editor.setKeyboardHandler("ace/keyboard/emacs"); //emacs
  /*reset*/
  editor.setKeyboardHandler(null);                 //Ace
</script>

サンプルコード

jsnoteで使っているコード
GitHub

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1