PyCharmでマクロを使ってみる

プロダクティブ・プログラマという本に「理想のツールを探す」という章があり、著者の「理想のエディタ」に必要な機能のリストが紹介されています。

曰く、以下の5機能です。

1. マクロレコーダ
2. コマンドラインから起動が可能
3. 正規表現による検索、置換ができる
4. データの追加が可能なクリップボード
5. マルチレジスタ


機能を満たす理想のエディタの候補として、vi、emacsjEditTextMateが挙げられています。


詳細はぜひ本を。


プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)


最近はPyCharmを使い込んでいるので、上記の機能がどんな感じか試してみようと思い、今日はキーボードマクロを試してみました。

マクロを登録する

Edit -> Macros -> Start Macro Recording を実行します。
デフォルトでキーは割り当てられてません。



Start Macro Recordingを実行したらキーボードを使って行を編集します。
この辺はEmacsとか普通のエディタと同じですが、Emacsでいう「forward word」に相当する「Move Caret Next Word」を実行したときのカーソルの位置が微妙に違うとかあるので、多少慣れが必要だと思います。


入力を終えたらEdit -> Macros -> Stop Macro Recordingを実行します。
マクロに名前をつけるか聞かれますが、テンポラリなマクロの場合は名前を入力しなくてもよいです。として保存され、次回のマクロを登録したときに上書きされます。


マクロの実行

「Edit -> Macros -> Play Back Last Macro」を実行するか、「Edit -> Macros -> マクロ名」を選択します。
この辺もキーは割り当てられてないので、⌃X,Eを割り当てました。

マクロの編集

「Edit -> Macros -> Edit Macros」で登録したマクロの編集ができます。
といってもマクロ中に入力したキーのうち、不要なものを削除できるだけです。


キー割り当てについて気づいたこと

1. 登録したマクロひとつひとつにキーを割り当てることができます。



2. Start Macro RecordingとStop Macro Recordingのキー割り当ては「Start/Stop Macro Recording」として、一つのキーしか割り当てられません。
Emacsライクに「C-x (」を割り当ててみましたが、(の入力がマクロに入ってしまって上手く行きませんでした。今後の課題。

その他気づいたこと

Emacsでは「C-u num C-x e」でマクロを何回実行するか指定できますが、これはPyCharmのマクロではできないようです。ちょっと不便かも