RSS Twitter Facebook

2016/07/09 (2016年07月 のアーカイブ)

ATOMのキーボードマクロ


エディタでキーボードの操作を記録して繰り返すキーボードマクロって日本のエディタでは結構ポピュラーだったのだけど、海外ではあまり人気がないのかなあ。あまりこれを駆使している人っていないような気がします。

処理の内容としては似たような事ができる正規表現置換とどちらを使うかという話なんですが、普通に文字を入力している状態から思考が途切れずにシームレスな感じで起動できるので結構すきなんですけどね。

という事で今常用しているエディタはATOMなんですが、これも標準ではキーボードマクロは搭載されていません。ただ ATOM はパッケージを追加すれば機能拡張が可能なので探してみるとありました。atom-keyboard-macrosという奴ですね。作成者は日本人の方の様です。なんか納得。

パッケージをインストールするには、"File"-"Settings"(Win) / "Atom"-"Preferences"(Mac) を開いて "+Install" を選び、"keyboard-macro" で検索するとでてくるので、ここで"Install"ボタンを押すだけです。



さて、これで "ctrl-x (" を押してから "ctrl-x )" を押すまでの間のキーボード操作を記録して "ctrl-x e" で操作を繰り返す事ができるようになります。Emacsスタイルですね。ところがこれ、Macなら良いのですが、Windowsで日本語キーボードだと残念ながら様子がおかしいです。
  • ホットキーでのマクロの記録ができません (ホットキーの位置がずれているようです)。
  • メニューからなら記録/停止ができますが再生時に " が @ になったり英語キーボード前提のコードが出てきます
惜しいなと思いつつ何がおかしいのかパッケージの中をちょっと探ってみると、キーコードの変換を英語キーボード前提でやっている部分があるようです。しかもWindows/LinuxでのChromiumバグ回避のため...みたいなコメントが書いてあります。また再生時はパッケージ側の問題ですがホットキー処理はATOM本体になり、そちらでも同じ事をやってるみたいです。

ATOM本体のIssueには既に上がっているのですが、解決策は示されていないようです。もともとworkaround用のコードなのであんまり頑張ってもなあというのもあるかも知れません。ちゃんと直すよりはChromiumに修正が入るのを待った方が良いかなあ、とか。なんかずっと放置状態みたいだしいつになるかわかりませんけど。

ということで、どうしても日本語キーボードで動かしたい時用に強引にキーコードのテーブルを書き換えてみました。
  • Win/Linuxの日本語キーボード環境でしか動きません
  • ホットキーは位置がずれる "ctrl-x (" 、"ctrl-x )" を避けて "ctrl-x ctrl-a"と"ctrl-x ctrl-z"、ついでに実行は"ctrl-x ctrl-x" にしてあります (趣味)
https://github.com/g200kg/atom-keyboard-macros

Posted by g200kg : 2016/07/09 02:01:00