Atomで新規ショートカットを割り当てたい
Atomで既に割り当てられているコマンドを変更する方法はいろいろ紹介されていましたが、
新規のコマンド(操作)を登録する方法はあまりなくて困ったのでその方法を紹介します。
既に割り当てられているコマンドを変更する方法はこの辺りを参考に。
『Atomのキーボードショートカットのカスタマイズ方法』
https://takezoe.hatenablog.com/entry/2015/11/28/235755
『atomでショートカットキーを作成・変更する方法』
https://omachizura.com/2016/08/atom-shortcut.html
新規で登録したいコマンド
・自動整形(Auto Indent)
(画像では既に割り当てを行っているため右側に灰色でCtrl+Iと書かれています)
・新規ウィンドウで開く(Open In New Window)
(File>New Windowとは違い、タブを右クリックした際に今開いているタブを新規ウィンドウに変更する方法です)
登録したかったのは上の2種類です。
自動整形(Auto Indent)
Auto Indentはデフォルトで割り当てがありませんでしたが、
調べたところ既にやられている方がいらっしゃいましたので
それを参考にさせていただきました。
『Atomでインデントを一括で整形する』
http://dormouse666.hatenablog.com/entry/2016/03/28/005857
基本的には変更の際と同様に、
File>Keymap
でkeymap.cson
を開き、以下のように追記します。
# 自動インデント整形
'atom-text-editor':
'ctrl-i': 'editor:auto-indent'
それぞれの要素の説明
'atom-text-editor' : セレクタ(Selector)
'ctrl-i' : 登録したいショートカット(Keystroke)
'editor:auto-indent' : 操作(Command)
新規ウィンドウで開く(Open In New Window)
基本的には上のものを応用してOpen In New Windowの
ショートカットも登録すればいいはずなのですが、
自分で決められるショートカットはともかく、
このSelectorとCommandがわかりません。
Selectorは似たようなコマンドと同じようなものになると予想し、
操作的にも似たようなところにあるReopen Closed Tab
を
Settings>Keybindings
で検索したところbody
というSelectorであることを確認。
Commandは中が [ hoge : fuga ] という形式になっています。
後半はメニューに書かれている操作そのものを大文字⇒小文字に変換し、
スペースをハイフン[-]で置き換えたものだと前項から想像できます。
そのためこの場合は [ hoge :open-in-new-window] となるでしょう。
問題は前半です。これはなかなか見つかりませんでしたが、
『Atomのショートカット』
https://note.nkmk.me/atom-shortcut/
こちらでコマンドパレットの検索の仕方を知りました。
コマンドパレットはctrl-shift-p
で開くことができ、
Keybindingsと違いショートカットが登録されていないコマンドも検索することができます。
ここにOpen In New Windows
と検索すると候補にTabs:Open In New Window
と表示され、
このTabs
がAuto Indentにおけるeditor
の部分になることが推測されます。
これらからkeymapに追加するテキストはこのようになることが予想されます。
# 新しいウィンドウで開く
'body':
'ctrl-N': 'tabs:open-in-new-window'
保存してAtomを再起動してみたところ、無事動作することが確認できました。
結論
今回は新規に割り当てをしたい2つのショートカットについて調べましたが、
Open In New Windowの項を読んでいただければ、それ以外でも
新規で割り当てたいコマンドのセレクタやコマンド名を調べることができると思います。
Atomで新規にショートカットを割り当てたいけどよくわからない、という方の参考になれば幸いです。
またこんな回りくどいことをしなくても調べる方法があるよ!という方も教えていただければありがたいです。