新規作成日 2018-07-02
最終更新日
コードの全てを理解することができないので、使用するコードの記述は、一覧に残しておくことが大切です。
基本的なコード
秀丸エディタのマクロのヘルプは、コマンド名でまとめてあります。 そこで、目的から検索する逆引きで探したい場合は、微妙に困ります。
秀丸エディタは、歴史のあるエディタですので、マクロの情報は、ユーザーの有志が、情報を公開してくれています。有益な情報を見つけたら、そのページのリンクも記録しておくことも大切です。
秀丸エディタは、コミュニティによるサポートが手厚いことで知られています。わからないことがあれば、秀シリーズサポートフォーラムで問い合わせましょう。
多くのコマンドは、マクロの記録で記録することができます。
カーソルの存在する行を選択するマクロ
shift+F6で選択を開始し、行末記号(\n)を検索します。
beginsel; // 選択を開始
searchdown "\\n" , regular, hilight; // 行末まで選択
shift+F6で選択を開始し、Endキーを押す。
beginsel; // 選択を開始
golineend; // 行末に移動
カーソル移動
行頭に移動する
Homeキーを押す
golinetop; // 行頭に移動する
カーソルを下げる
↓下矢印キーを2回選択する
down 2;
カーソルを行の先頭に移動する
Homeキーを押す
golinetop;
ファイルの先頭に移動する
Ctrl+Homeを押す
gofiletop;
ファイルの末尾に移動する
Ctrl+Endを押す
gofileend;
選択した範囲を取得する
$s = gettext(seltopx,seltopy,selendx,selendy);
$sは、文字列変数です。文字列の最初に、$をつけ、数値変数には、#をつけます。
- 【6】文字列型変数に取り込むには:その1(gettext文,gettext2文)
秀丸マクロでは、範囲選択された文字列を直接文字変数に取り込むマクロ文は有りません。 画面上の任意の範囲の文字列を文字変数に取り込むgettext文と、 現在の選択範囲の座標値を示すseltopx~selendyキーワード(範囲選択関連キーワード)を併用します。
- 選択された文字列を取得する
挿入
文字列をカーソル位置に挿入する
insert "挿入";
改行を挿入する
insertreturn;
選択を解除する
Escキーを押す
escape;
選択範囲を削除する
beginsel; // shift+F6で選択を開始する
golineend; // Endで行末に移動する
delete; // 削除
カーソル位置の文字コードを取得する
ファイル全てを処理する際の条件式に使う事が多い
Code
- ファイルの最後の[EOF]の上の場合は-1(eofという定数と同じ値)になります。
- 改行文字の上の場合は0x0D
- フリーカーソルモードの時に、カーソルが改行文字より後ろに位置する場合はcodeの値は0になります。
空白ではない行に移動する。
カーソルを行頭に移動して、文字があるか確認します。改行文字であれば、その行には文字はありません。
// 空白行をスキップする
golinetop; // 行頭に移動する
while(code == 0x0D) // 0x0Dは、改行コード
{
down 1; // 次の行に移動する
golinetop; // 行頭に移動する
}
カーソル行の文字列を取得する
// カーソル行の内容を取得する
golinetop; // 行頭に移動する
beginsel; // 選択を開始
golineend; // 行末に移動
$workString = gettext(seltopx,seltopy,selendx,selendy); // 選択行の内容を取得する
繰り返し構文
秀丸マクロの繰り返し構文には、for文がありません。そのため、繰り返しには、while を使用します。
while(条件式){
//条件式が0以外(真)の場合この部分の記述(処理)を、
//条件式が0(偽)になるまで繰り返し実行する
}
条件分岐構文
if(条件式){
//条件式が0以外(真)の場合この部分の記述(処理)を実行する
}
else{
//条件式が0(偽)の場合この部分の記述(処理)を実行する
}