マクロが多すぎてキーが足りない人へ。拡張子別のキー割り当て、言語別のコードスニペット、マクロランチャー etc.
目次 |
概要
|
インストール後のファイル配置は次のようになります。
■マクロフォルダ\ │・Takoashi.mac … 起動マクロ └■Takoashi\ ・Takoashi-Main.mac … 本体マクロ ・user=<ユーザ名>.ini … 設定ファイル ・readme.html … このドキュメント ・ht_tools.dll
細かい説明は後回しにして、とりあえずマクロを動かしてみましょう。
[.ini] Alt+<=insert "[\I]" "\"\I\"" "'\I'" Alt+>={golinetop2; if (code==';') delete; else insertfix ";";} [.htm] ==[HTML] [.html] ==[HTML] [HTML] Alt+<=insert "<a href=\"\I\">\S</a>" Alt+>=puts "<div class=\"\I\">\n\t\S\n</div>" "<ul class="\I">\n\t<li>\n\t\t\S\n\t</li>\n</ul>" [default] Alt+<=macro 'D:\HidemaruMacro\Hidematter.mac' Alt+>=menu "Google検索(&G)=ググる" "秀丸エディタのヘルプ(&H)=ヘルプ" ググる=url "https://www.google.com/search?q=\S" ヘルプ=help '%ProgramFiles(x86)%\Hidemaru\hidemaru_html.chm'
[]
""
''
のいずれかが挿入され、\I
で指定した位置にカーソルが移ります。;
があれば削除し、なければセミコロン ;
を挿入します。Alt+< | Alt+> |
---|---|
\I
で指定した位置にカーソルが移ります。\I
で指定した位置にカーソルが移ります。Alt+< | Alt+> |
---|---|
この設定例をベースとして自分に合った Takoashi 環境を作っていきましょう。設定の詳細はコマンド一覧と設定ファイルの書き方を参照してください。作者が今使ってる設定ファイルが参考になるかもしれません。
\S
はマクロ実行前の選択文字列になります。\S
が複数あっても OK です。\I
はマクロ実行後のカーソル位置になります。\I
が複数ある場合、奇数番目の \I
から偶数番目の \I
までの間が範囲選択されます。設定例:
Ctrl+K=insert "【\S】" "〖\S〗" "〘\S〙" "〚\S〛" Ctrl+L=insert "<a href=\"\I\I\" title="\I\I">\S</a>"
設定例:
Ctrl+T=puts "try {\n\t\S\n} catch (e) {\n\t\I\n}" Ctrl+D=puts "<dl>\n\t<dt>\S</dt>\n\t<dd>\n\t\t\S\n\t</dd>\n</dl>"
%環境変数%
が展開されます。設定例:
Ctrl+M=macro 'Hoge.mac' 引数1 引数2 ... Ctrl+Q=macro '%USERPROFILE%\HidemaruMacro\Hoge.mac'
設定ファイルにマクロを直接書くには macro コマンドではなくマクロ記法を使います。
設定例:
Ctrl+M=macro* 'Hoge.mac' 引数1 引数2 ... Ctrl+Q=macro* '%USERPROFILE%\HidemaruMacro\Hoge.mac'
\S
はカーソル位置の単語または選択文字列が URL エンコードされたものになります。設定例:
F12=url "http://eow.alc.co.jp/search?q=\S"
%環境変数%
が展開されます。設定例:
F1=help '%ProgramFiles(x86)%\Hidemaru\hidemac_html.chm'
=
で区切って指定します。参照先キー名は任意です。下の例では F1,H
などとしていますが、どんな名前を付けても OK です。*1=
を含めて省略できます。この場合、項目名からアクセラレータキーを除いた文字列*2が参照先キー名になります。""
の場合はセパレータになります。設定例:
F1=menu "HTMLヘルプ(&H)=F1,H" "PHPヘルプ(&P)=F1,P" "Rubyヘルプ(&R)=F1,R" F1,H=url "https://developer.mozilla.org/ja/search?q=\S" F1,P=url "http://jp2.php.net/manual-lookup.php?lang=ja&function=\S" F1,R=url "http://rurema.clear-code.com/query:\S/"
設定ファイルは Takoashi-Main.mac と同じフォルダにある user=<ユーザ名>.ini という名前のテキストファイルです。エンコードは UTF-16 (BOM 付き) でなければなりません。
設定ファイルの中身は INI ファイル形式です。ファイルタイプ別のセクションの下に、キーと設定値のペアを1行ずつ書いていきます。設定値には「コマンド」「マクロ記法」「参照記法」の3種類があります。
[ファイルタイプ] キー=コマンド キー={マクロ記法} キー==参照記法
INI ファイルのセクションには、ファイルタイプを指定します。ファイルタイプは通常、ピリオドで始まる拡張子です。大文字小文字は区別されません。拡張子の代わりに下記の特殊なファイルタイプも指定できます。
ファイルタイプ | 意味 |
---|---|
[.] | 拡張子なし |
[new] | 無題 |
[grep] | Grep結果 |
[executing] | 実行中 |
[exeresult] | 実行結果 |
[webbrowse] | Webブラウズモード |
[default] | 該当するファイルタイプがない場合のデフォルト |
参照記法を使って複数のファイルタイプの設定をひとつのセクションにまとめることもできます。
INI ファイルのキーには、マクロ起動時に押すキーを指定します。指定可能なキーは 0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
@
[
\
]
^
_
<
>
-
/
:
;
Home
End
Bksp
Enter
Ins
Del
Up
Down
Right
Left
Tab
Space
PgUp
PgDn
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
のいずれかと、それに先行するモディファイヤ Alt+
Shift+
Ctrl+
の組合せです。大文字小文字は区別されません。モディファイヤは必ず Alt+Shift+Ctrl+ の順に書かなければなりません。
設定例:
F1= Ctrl+K= Shift+Up= Shift+Ctrl+>= Alt+Bksp= Alt+Ctrl+\= Alt+Shift+Del= Alt+Shift+Ctrl+[=
設定値としてコマンドを書くと、コマンド一覧にある各種機能が実行されます。
コマンドは、スペースで区切られた1個以上の引数をとることができます。引数にスペース・引用符・エスケープシーケンス (後述) を含めたい場合は、引数を引用符で囲みます。
' '
で囲んだ場合、囲まれた文字列がそのまま引数になります。シングルクォート内にシングルクォートを書くことはできません。シングルクォート内ではエスケープシーケンスは無効です。" "
で囲んだ場合、下記のエスケープシーケンスが有効になります。\S
と \I
は一部のコマンドでのみ有効です。シングルクォートはエスケープせずにそのまま書けます。エスケープシーケンス | 意味 |
---|---|
\\ | バックスラッシュ文字 \ |
\" | ダブルクォート文字 " |
\t | タブ文字 |
\n | 改行文字 |
\S | 実行前の選択文字列 |
\I | 実行後のカーソル位置/選択文字列 |
設定例:
Ctrl+J=insert 第1引数 第2引数 Ctrl+K=insert '第1引数 "quoted"' '第2引数 \\←two backslashes' Ctrl+L=insert "第1引数 \"quoted\"" "第2引数 \\←one backslash"
設定値を波括弧 { }
または二重波括弧 {{ }}
で囲むと、設定値がそのまま秀丸マクロとして実行されます。
{ }
で囲んだ場合、複数選択を Takoashi 側で分解せず、そのままの状態でマクロが実行されます。{{ }}
で囲んだ場合、複数選択を Takoashi 側で分解し、各範囲に対してマクロが実行されます。設定例:
Ctrl+9={message "No additional escaping required.\n";} Ctrl+0={{message "This is executed for each region.\n";}}
設定値としてイコール =
に続けてキー名・セクション名・ファイル名を書くと、他の設定を参照することができます。任意の名前をもつキー・セクション・ファイルを参照先として作ることができます。
キー==他のキー キー==[他のセクション] キー==[他のセクション]他のキー キー==<他のファイル> キー==<他のファイル>[他のセクション] キー==<他のファイル>[他のセクション]他のキー
設定例:
[.php] Ctrl+J==Ctrl+8 Ctrl+8==insert "()" Ctrl+K==[HTML] Ctrl+L==[PROG]Ctrl+0 Alt+F1==<help.ini> [HTML] Ctrl+K=insert "<p>" [PROG] Ctrl+0=insert " == "
[.php] Alt+F1=help 'D:\Manual\php_manual_ja.chm'
上の例では、.php ファイル上で
insert "()"
コマンドが、insert "<p>"
コマンドが、insert " == "
コマンドが、help 'D:\Manual\php_manual_ja.chm'
コマンドが、それぞれ実行されます。
キーが見つからない場合や設定値が空の場合は、次の順序でデフォルト値が検索されます。
これを使って複数のファイルタイプの設定を1か所にまとめたり、既存の設定を継承して新しい設定を作ったりすることができます。
設定例:
[.php] ==[.html] Ctrl+J=insert "()" ; Ctrl+K, Ctrl+L, Alt+F1 が見つからない → 無名キーを参照 → [.html] を参照 [.html] Ctrl+K=insert "<p>" ; Ctrl+L, Alt+F1 が見つからない → 無名キーも見つからない → [default] を参照 [default] ==<help.ini> Ctrl+L=insert " == " ; Alt+F1 が見つからない → 無名キーを参照 → <help.ini> を参照
[.php] Alt+F1=help 'D:\Manual\php_manual_ja.chm'
上の例では、.php ファイル上で
insert "()"
コマンドが、insert "<p>"
コマンドが、insert " == "
コマンドが、help 'D:\Manual\php_manual_ja.chm'
コマンドが、それぞれ実行されます。
一次配布場所は Wisteria - 秀丸マクロ - Takoashi です。二次配布は次のところで行われています。
Takoashi と同じコンセプトにもとづく古いマクロです。当時の貧弱なマクロ仕様のなかで、ものすごい力業を使って実装されています。Takoashi は、古い秀丸との互換性を無視することで、同じ機能をずっとエレガントに実装しました。
{{ }}
で囲むマクロ記法がエラーになるバグ修正{ }
で囲むマクロ記法は Takoashi 側で複数選択を分解せず、そのままの状態でマクロを実行する{{ }}
で囲むマクロ記法は Takoashi 側で複数選択を分解し、各範囲に対してマクロを実行する"---"
から空文字列 ""
に変更\I\I
があったらゼロ幅の範囲選択をするバグ報告、提案、質問、ツッコミなどは 談話室 へどうぞ。