はじめに
Atomのプラグインは、command-paletteとかfuzzy-finderとか、「入力した内容で絞り込んでその中から選んで実行する」というUIのものが多いですよね。
そういった似たようなUIのプラグイン用にキーバインドを設定する場合、それら共通のキーバインドを設定して使い回したいと思うのですが、
それをまとめて設定するkeymapの書き方を紹介します。
SelectListView用のプラグインを設定する
「入力した内容で絞り込んでその中から選んで実行する」UIを持つプラグインは多くの場合、SelectListViewを継承することで実現されています。
これを継承したプラグインの多くはこれと共通したビューからなるので、
'.select-list atom-text-editor':
'ctrl-c': 'core:cancel' # Vimっぽくキャンセル出来るようにしたい
'ctrl-[': 'core:cancel'
'tab': 'core:move-down' # Tab, Shift-Tabで順送り、逆送りしたい
'shift-tab': 'core:move-up'
…のように、.select-list atom-text-editor
のようなセレクタを指定してあげると、まとめて設定することが出来ます。(atom-text-editor
は付けなくても良い)
SelectListViewに用意されたコマンド
ちなみに、SelectListViewでは、いくつか選択肢を操作するコマンドが用意されていて、以下のコマンドは共通して次の動作になります。
コマンド名 | 動作 |
---|---|
core:move-up | 前の(上の)選択肢に移動する |
core:move-down | 次の(下の)選択肢に移動する |
core:move-to-top | 最初の(一番上の)選択肢に移動する |
core:move-to-bottom | 最後の(一番下の)選択肢に移動する |
core:confirm | 決定 |
core:cancel | キャンセル |
他にも、SelectListViewの絞り込みの入力欄は縮小版のテキストエディタを使っているのでテキストエディタ(atom-text-editor
)で有効なコマンドを設定することが出来ます。
他のプラグインでもcore:confirm
, core:cancel
などは決定、キャンセルの動作になることが多いのでキーバインドを設定する場合は試してみるといいと思います。