カーソルの前後を入換えるマクロNo.22212
あつし さん 06/11/17 15:35
 
何時もお世話になっています。
1行を、カーソルの前後で入換えるマクロはないでしょうか?

私は後置のif(やunless, for)が好きでよく使いますが、ブロック内が複数になっ
たとき、書換えが必要になるのが困っています。
贅沢な悩みかも知れませんが、もし既にあれば、お教え願います。
(マクロがPerlで書けるようになれば、自分で直ぐにできるのですが)
-----------------------
do {
  $v1 += 3 if $v2 == 1;
}
-----------------------
ifの直前にカーソルを置いて...

  if $v2 == 1;$v1 += 3

  if $v2 == 1;
  $v1 += 3

最後に望むコーディング
-----------------------
do {
  if ($v2 == 1) {
    $v1 += 3;
    next;
  }
}
-----------------------

[ ]
RE:22212 カーソルの前後を入換えるマクロNo.22213
秀丸担当 さん 06/11/17 16:37
 

>何時もお世話になっています。
>1行を、カーソルの前後で入換えるマクロはないでしょうか?

簡単なものであれば、マクロの知識がなくてもキー操作の記録と再生でできます。
例えば、
・Shift+F1で記録開始
・Shift+Endでカーソル以降を選択
・Ctrl+Xで切り抜き
・Homeで行頭
・Ctrl+Fで検索で正規表現で「[^ \t]」
・Escで選択解除(されていれば)
・Escで検索文字列の強調解除(されていれば)
・Ctrl+Vで貼り付け
・Shift+F1で記録終了

あとは、Shift+F2で再生すれば、前後の入れ替えができます。

[マクロ]→[キー操作の保存]をすれば、記録した内容をマクロにすることができ
ます。
保存したマクロを簡単に修正すれば、より好みに合わせることができると思いま
す。

上記の操作は標準のキー割り当ての場合です。
[その他]→[動作環境]→[編集]→[貼り付け後のカーソル位置]が「最後に移動」
である必要があります。

折り返しの考慮をする場合は、行末など移動を、「論理行末に移動」コマンドを
実行して記録するとか、
あるいは記録したマクロを保存してgolineend2;に書き換えるとかするとできま
す。


[ ]
RE:22213 カーソルの前後を入換えるマクロNo.22214
秀丸担当 さん 06/11/17 17:02
 

あとインデントされていないことも考えると、
[その他]→[動作環境]→[検索]→[カーソル位置の次の文字から検索を開始]が無
効の状態で記録するか、
あるいは有効であっても記録して保存したマクロのsearchdownをsearchdown2に
書き換えたほうがよさそうです。

[ ]
RE:22214 カーソルの前後を入換えるマクロNo.22216
あつし さん 06/11/18 14:47
 
有り難う御座います。

キー操作の記録は、余り使ったことがなかったし、マクロに保存できるとはは知りま
せんでした。
これなら簡単に実現できますね、嬉しいかぎりです、これでやってみます。

Perl好きとしては、Perlも使えると嬉しいのですが・・・(^_^)ゞ


[ ]
RE:22216 カーソルの前後を入換えるマクロNo.22219
白雲斎 さん 06/11/18 23:27
 
こんにちは あつし さん、白雲斎です。

>Perl好きとしては、Perlも使えると嬉しいのですが・・・(^_^)ゞ

//beginsel;
run "perl -e 'print \"Hello World\n\";' >con";

[ ]
RE:22219 カーソルの前後を入換えるマクロNo.22245
あつし さん 06/11/27 10:55
 
>//beginsel;
>run "perl -e 'print \"Hello World\n\";' >con";

へぇ、こうやると別のタブが開いて、Hello World<\n>と表示されました。「>con」
というのがあるんですね、調べてみます。
これはまた、何かに使えそうですね。

たまたま、普段平文でそのまま置いて置けないテキストファイルをどうしたものかと
考えていました。
今までは、中を見たいときにはスクリプトを通して平文に戻し、確認が済んだらその
ファイルを削除する、と言うことをやっていましたが、これをマクロにしておけば、
キー操作一発で内容を確認、済んだらタブを閉じるだけですね。
これは便利です。皆さんは、どうされてますか?
秀丸には、このようなことに使えるセキュリティに関する機能は無い様に思えます
が・・・

※ 上記「Hello World」は以下が良いようです。
run "perl -le \"print 'Hello World'\" >con";

[ ]