Komodo Editのマクロのサンプル(現在日時の挿入)

Komodoネタ第3弾です。
個人的にKomodoでのマクロは是非使っておきたい機能だと思いますので、
簡単なマクロを作って雰囲気を紹介します。

準備

まずは自作マクロ用のフォルダを作っておくとバックアップや移行 *1 が楽になります。

Toolboxを開いて何もないところを右クリックして Add→New Folder から適当な名前を入れます。
(メニューバーに表示する場合はNew Folderの代わりにNew Custom Menu)

そうすると

C:\Users\<ユーザ名>\AppData\Local\ActiveState\KomodoEdit\7.1\tools\<入力した名前>

に物理フォルダが作られます。

マクロの作成

右クリックの Add→New Macro から適当な名前を入れ、Language は JavaScript を選択。
以下の様なスクリプトを書きます。

(function() {
    var d = new Date;
    var dateStr = '' +
    d.getFullYear() + '/' +
    ('0' + (d.getMonth() + 1)).slice(-2) + '/' +
    ('0' + d.getDate()).slice(-2);
    ko.views.manager.currentView.scimoz.replaceSel(dateStr);
})();

Key Bindings タブで「Ctrl+;」を Add し OKボタンで保存。
※キーアサインはExcelと同じ

これでCtrl+;で「2013/02/06」といった文字列がエディタに挿入されるようになります。

ちなみにマクロ右クリックの「Edit Macro」からならエディタ側で編集できます。

スニペットでも

実はこの程度ならマクロを持ち出すまでもなくスニペットでもっと簡単に [[%date:%Y/%m/%d]] とか [[%date:%H:%M:%S]] と書くだけで同じ事ができるんですよね。


さらにそれをマクロから呼び出したりも。

var dateStr = ko.interpolate.interpolateString('%date:%Y/%m/%d');
ko.views.manager.currentView.scimoz.replaceSel(dateStr);


TMTOWTDIですね。

参考資料

Macro API Reference
http://docs.activestate.com/komodo/4.4/macroapi.html


ActiveSatate Code Recipes (をmacroタグで検索)
http://code.activestate.com/recipes/tags/macro/

*1:有料版のKomodo IDEだとActiveStateのサーバ経由でPC間の設定やマクロの同期ができるそうです。 http://docs.activestate.com/komodo/7.1/sync.html