秀丸エディタで、選択範囲の行頭&行末に文字を挿入するマクロがあれば、教えて頂けないでしょうか?
ちなみに、
秀丸エディタで指定範囲の文字列を指定文字列で囲むマクロ
ttp://d.hatena.ne.jp/shouh/20160417/1460847168
↑
これだと、選択範囲の最初と最後にしか文字が追加されません
すべての行の行頭&行末に特定の文字列を挿入
ttp://honey8823.hateblo.jp/entry/2015/08/11/120020
↑
動作的にはこれが近いですが、「選択範囲」ではなく「すべての行」に文字が追加されます。
挿入の基準が「行」となるようなので、
1行のみを対象とするような場合に
「文字を選択していないくてもキャレットがあればその行を選択している」
とみなして良いのであれば、次のような感じで。
キャレットが行頭にある場合について
$BegininiOfLine = ">>"; $EndOfLine = "<<"; if ( selecting == 1 ) { escape; #TargetLine = seltopy + 1; if ( selendx == 0 ) { #EndLine = selendy; } else { #EndLine = selendy + 1; } movetolineno 1, seltopy + 1; } else { #TargetLine = lineno; #EndLine = lineno; } gofileend; #FileEndLine = lineno; movetolineno 1, #TargetLine; while ( #TargetLine != #EndLine + 1 ) { golinetop; insert $BegininiOfLine; golineend; insert $EndOfLine; #TargetLine = #TargetLine + 1; if ( #TargetLine >= #FileEndLine ) { break; } movetolineno 1, #TargetLine; }
/////////////////////////// // ◆ユーザ設定 // 行頭に挿入する文字列 $header = "["; // 行末に挿入する文字列 $footer = "]"; ///////////////////////////
#tmplineno = seltopy; #endline = selendy;
// #endline まで繰り返し while (code != eof) {
// 行頭 moveto 0, #tmplineno; insert $header; // 行末 moveto linelen, #tmplineno; insert $footer;
//次の行へ #tmplineno = #tmplineno + 1; movetolineno 1, #tmplineno + 1; if (#tmplineno > #endline) break; }
2つめのマクロを少し変更してみました。
範囲指定してから、上記のマクロを呼び出すと、期待通りの動作をするかと思います。
ありがとうございます。
試してみたのですが、一番下の行を選択してマクロを実行すると何も起きませんでした。
挿入の基準が「行」となるようなので、
1行のみを対象とするような場合に
「文字を選択していないくてもキャレットがあればその行を選択している」
とみなして良いのであれば、次のような感じで。
キャレットが行頭にある場合について
$BegininiOfLine = ">>"; $EndOfLine = "<<"; if ( selecting == 1 ) { escape; #TargetLine = seltopy + 1; if ( selendx == 0 ) { #EndLine = selendy; } else { #EndLine = selendy + 1; } movetolineno 1, seltopy + 1; } else { #TargetLine = lineno; #EndLine = lineno; } gofileend; #FileEndLine = lineno; movetolineno 1, #TargetLine; while ( #TargetLine != #EndLine + 1 ) { golinetop; insert $BegininiOfLine; golineend; insert $EndOfLine; #TargetLine = #TargetLine + 1; if ( #TargetLine >= #FileEndLine ) { break; } movetolineno 1, #TargetLine; }
思った通りの動作になりました!
このたびは本当にありがとうございました。
お役に立てたようで良かったです。
ベストアンサーありがとうございました。
思った通りの動作になりました!
2018/05/04 11:11:19このたびは本当にありがとうございました。
お役に立てたようで良かったです。
2018/05/04 11:25:01ベストアンサーありがとうございました。