さらなる要望No.07491
bouz さん 05/04/21 13:25
 
懲りないわけですが。
* 強調の表示の仕方に、アンダーラインだけじゃなく、打ち消し線がほしい。あると
便利に使えると思います。

* マクロで、最後に実行したコマンドが何であるか知りたい。たとえば、lastcomman
d みたいな変数。

* 上に関連するが、undoで同じタイプの処理をまとめてやりたい。今はただの削除も
何もかもひとつずつで、ちょっとダサい。

ネタ行きか...

[ ]
RE:07491 さらなる要望No.07492
秀まるお さん 05/04/21 13:47
 
 文字の色じゃなくて下線の色を指定できたらいいんじゃないかとか、文字を点
滅表示させる指定があったらいいんじゃないかとかってアイデアもあります。

[ ]
RE:07491 さらなる要望No.07493
Iranoan さん 05/04/21 14:02
 
 bouz さん今日は、Iranoan です。
> * マクロで、最後に実行したコマンドが何であるか知りたい。たとえば、lastcomman
> d みたいな変数。
 マクロは基本的には人が書くので、直前に何をやっているか解っているはず
なのに、何故その様なコマンドが必要なのか解らない???
 ひょっとして、「マクロを実行する直前に何をしたか知りたい」ということ
でしょうか?
> * 上に関連するが、undoで同じタイプの処理をまとめてやりたい。今はただの削除も
> 何もかもひとつずつで、ちょっとダサい。
 マクロと言うか、プログラムというのはそういうものでは? 同じ処理を何度
もということなら、その為に秀丸ならサブルーチンや execmacro 文があるの
でしょう。

[ ]
RE:07493 さらなる要望No.07495
bouz さん 05/04/21 14:17
 
> マクロは基本的には人が書くので、直前に何をやっているか解っているはず
>なのに、何故その様なコマンドが必要なのか解らない???

人間はわかっているが、マクロがわかっていないから、ということですよ。そんなこ
と言ったら全部人間の手でやれということになるでしょう?楽したいからマクロにす
るわけで。

> ひょっとして、「マクロを実行する直前に何をしたか知りたい」ということ
>でしょうか?

全然違います。
例えばタグジャンプしたあと、バックタグジャンプする。
このときなにかするとして、単にファイルを開いたのか、バックタグジャンプで戻っ
たのか、そういうことがマクロで簡単に判断できるでしょう、ということです。

>> * 上に関連するが、undoで同じタイプの処理をまとめてやりたい。今はただの削除も
>> 何もかもひとつずつで、ちょっとダサい。
> マクロと言うか、プログラムというのはそういうものでは? 同じ処理を何度
>もということなら、その為に秀丸ならサブルーチンや execmacro 文があるの
>でしょう。

そんなことないで笑。それは前もってやることがわかっている場合だけですよ。
何も考えず、普通にカットして、100文字削除して、というとき、文字削除の部分だ
け戻すにはどうしますか?100回アンドゥします?
100回アンドゥだけ間止まれれば、カットの前で止められる。
今の仕様では根気よくアンドゥしたとして、カットしたところではじめて、ああ行き
すぎた、と思ってredoするわけです。ダサくないですか?

[ ]
RE:07492 さらなる要望No.07497
bouz さん 05/04/21 14:50
 
> 文字の色じゃなくて下線の色を指定できたらいいんじゃないかとか、文字を点
>滅表示させる指定があったらいいんじゃないかとかってアイデアもあります。

ううむ、それもいいような、点滅は普段はウザいかもしれませんが、
打ち消し線と同じような使い道があるかもしれません。

下線の色指定は、どんな使い道があるだろう?ぱっと思いつきませんが、思いついた
らまた書きます。

ToDoから消えた、でもこういうことがあった。ということで、打ち消し線があるとい
いかな、と思う次第です。

[ ]
RE:07495 さらなる要望No.07498
秀まるお さん 05/04/21 15:00
 
 僕がコメントするのもなんですが、繰り返し実行してるかどうかを知るための、
replayというキーワードならあります。

 たしか内部的には、replayキーワード用に直前に実行したコマンドコードも覚
えているとは思いますが…。

 (あとは秀丸担当に回送というか、余計なことは言わないことにします)

[ ]
RE:07498 さらなる要望No.07499
bouz さん 05/04/21 15:16
 
> 僕がコメントするのもなんですが、繰り返し実行してるかどうかを知るための、
>replayというキーワードならあります。

先日replayについて2ストロークにも対応してくれと要望を出したばかりです。(^_^;)

> たしか内部的には、replayキーワード用に直前に実行したコマンドコードも覚
>えているとは思いますが…。

そうなんですか?
いま思ったんですが、アンドゥバッファを、キーの記録の保存、みたいに書き出すこ
とは出来ないんでしょうか?もしそっちのほうが簡単なら、マクロでそのファイルを
見ればいいんですけど。

> (あとは秀丸担当に回送というか、余計なことは言わないことにします)

そうおっしゃらずに、お願いします。何せ井戸を掘った人なのですから、一番大事な
人です。

[ ]
RE:07499 さらなる要望No.07504
秀まるお さん 05/04/21 17:52
 
> いま思ったんですが、アンドゥバッファを、キーの記録の保存、みたいに書き出すこ
> とは出来ないんでしょうか?

 アンドゥバッファは、単純に、文字列の挿入/削除/上書き関係を覚えている
だけでして、コマンドコードが何だったかは覚えてません。

 replay部分のソースコードを見たら、

        case F_REPLAY:
            return cmdPrev == cmdCur;

 ってなってるだけなので、つまり、直前に実行したコマンドコードは内部的に
は覚えているようです。なので、このコマンドコードを整数の値として返すよう
な何かを追加するのは簡単だと思います。ただ、そうすると、コマンドの内部的
な値がどうなっているのか、ユーザー様自身で調べていただくというような方向
になってまうかもしれないし、そういうことが面倒なユーザー様は、サポート担
当に1つ1つ質問されてしまって大変なことになるかもしれません。

 ってことで、今のところは、こういう内部的なコマンドコードを表に出すのは
よくないような気がします。

 もっとエレガントな方法を考えた方がいいような気がします。

[ ]
RE:07497 さらなる要望No.07505
秀丸担当 さん 05/04/21 17:58
 

社長の言われる通り、カラー表示のスタイルを増やそうかというネタはあります。
今のところやっていません。
打ち消し線もネタとして参考にしたいと思います。

[ ]
RE:07504 さらなる要望No.07512
Iranoan さん 05/04/21 18:44
 
 秀まるおさん、bouz さん今日は、Iranoan です。
 まず bouz さんへ
> * マクロで、最後に実行したコマンドが何であるか知りたい。たとえば、lastcomman
> d みたいな変数。
に付いては、読み返してみても bouz さんの仰ることが私には解らない為、
> > 何も考えず、普通にカットして、100文字削除して、というとき、文字削除の部分だ
> > け戻すにはどうしますか?100回アンドゥします?
についても、私はこういった編集方法を取らず、実感が湧かないので取り敢え
ず保留にさせてください。

> > 僕がコメントするのもなんですが、繰り返し実行してるかどうかを知るための、
> >replayというキーワードならあります。
>
> 先日replayについて2ストロークにも対応してくれと要望を出したばかりです。(^
>_^;)
 このキーワードって、コマンドが連続して実行されているかを表しているの
でしょうか? マクロ・ヘルプには
> 現在のマクロが連続実行されてるものかどうかを表します。
>       ^^^^^^
とあります。もしヘルプの記載が正しいなら、このスレッドとの繋がりが解り
ません。
 ##ソースを見ると、コマンド単位にも見えますが...。

>  replay部分のソースコードを見たら、
>
>         case F_REPLAY:
>             return cmdPrev == cmdCur;
 確かにこれで解るようになれば、
#cmd = cmdCur;
while( #cmd == cmdPrev )undo;
で全置換の一括 undo や bouz さんの仰る「100回アンドゥ」も実現できそう
ですね。
 ##どの程度前まで覚えているか疑問で、直前しか覚えていないなら×ですが。

> 直前に実行したコマンドコードは内部的に
> は覚えているようです。なので、このコマンドコードを整数の値として返すよう
> な何かを追加するのは簡単だと思います。ただ、そうすると、コマンドの内部的
> な値がどうなっているのか、ユーザー様自身で調べていただくというような方向
> になってまうかもしれないし、そういうことが面倒なユーザー様は、サポート担
> 当に1つ1つ質問されてしまって大変なことになるかもしれません。
 確かにそういった懸念はありますね。
 ただ keypressed の値や sendmessage 関数のパラメータに付いても殆ど質
問はでてこないので、実際に大変なことになるかは懐疑的です。←サポートす
るのはサイトー企画さんの皆さんだから、こんな勝手なことが言える(^^;。

[ ]
RE:07504 さらなる要望No.07546
bouz さん 05/04/23 11:15
 
> アンドゥバッファは、単純に、文字列の挿入/削除/上書き関係を覚えている
>だけでして、コマンドコードが何だったかは覚えてません。
>
そうでしたか。そういえばカーソル位置が戻りませんもんね。


> replay部分のソースコードを見たら、
>
>        case F_REPLAY:
>            return cmdPrev == cmdCur;
>
> ってなってるだけなので、つまり、直前に実行したコマンドコードは内部的に
>は覚えているようです。なので、このコマンドコードを整数の値として返すよう
>な何かを追加するのは簡単だと思います。ただ、そうすると、コマンドの内部的
>な値がどうなっているのか、ユーザー様自身で調べていただくというような方向
>になってまうかもしれないし、そういうことが面倒なユーザー様は、サポート担
>当に1つ1つ質問されてしまって大変なことになるかもしれません。
> ってことで、今のところは、こういう内部的なコマンドコードを表に出すのは
>よくないような気がします。
> もっとエレガントな方法を考えた方がいいような気がします。

質問を受け付けなくてもいいように、また使いやすいように、
違うときだけresultを返してもらうというのはどうでしょう?

たとえば、今ボクは一気にアンドゥをやるために
setmark;setmark;
while (result&updated) undo;
なんてやってるんですが、これはresultが0か1というのを当てにしてるんで、
そもそもundoのresultを当てにしているのも正しいのか不明なんですが。正しいとして
たとえばずっと削除のアンドゥだったが次はカットのアンドゥだよ
というときは、resultに-1とか3とか返るとか。

あるいは途中で、
undo;あるいは何か
islastcommand cut;
if (result==yes)
とかやれると嬉しい気がします。

[ ]
RE:07495 さらなる要望No.07554
Iranoan さん 05/04/23 15:56
 
 bouz さん今日は、Iranoan です。
 やはり読み返しても解らないので、再度お聞きします。
> 例えばタグジャンプしたあと、バックタグジャンプする。
> このときなにかするとして、単にファイルを開いたのか、バックタグジャンプで戻っ
> たのか、そういうことがマクロで簡単に判断できるでしょう、ということです。
 ここで「タグジャンプしたあと、バックタグジャンプする。」とは、
(1) メニュー等直接秀丸を操作して実行し、このあと実行するマクロを実行し
    た時に、そのマクロ内部で、単に「ファイル」→「開く」をされたのか
    「バックタブジャンプ」したのか知りたい
    これにはマクロ実行前に、別の openfile や backtagjump で終わるマク
    ロを実行しているときも含みます
(2) tagjump;
    backtagjump;
    と編集しているマクロがあり、その後の処理を記述したい
のどちらでしょう? それとも、これら以外の場合でしょうか?

> 何も考えず、普通にカットして、100文字削除して、というとき、文字削除の部分だ
> け戻すにはどうしますか?100回アンドゥします?
 こちらについて、
> たとえば、今ボクは一気にアンドゥをやるために
> setmark;setmark;
> while (result&updated) undo;
あたりを読んでいて、私が読み違いをしていることが解りました。
 しかし、新たな疑問として、何を「同じタイプの処理」とするのでしょう?
・マクロを実行した時は、同じマクロを実行したら、それは 1 つのマクロ単
  位で同じタイプの扱いするのか?
    o もしそうならば、マクロ内部で if, else, execmacro で分岐処理をさ
      せているときはどうするか?
    o そうでないなら、マクロの内部で書かれた個々のコマンド一つづつで同
      じとするのか?
・setsearch $s, #s;
  while( finddown2 )tohankaku;
  としている時はどうするのか?
    o 上/下候補は、同じコマンド・コードであっても検索/置換の時があり、
      編集とすべきかどうか悩ましい
      →これについては、両者のコマンド・コード時だけ置換ビットが立って
      いるかで解るでしょうが、変換モジュールを使う「変換」系のコマンド
      はどうなるのか予測が付きません。


 あと直前のコマンド・コードだけ解っても、bouz さんの要望には合致しな
いと思います。少なくとも、アンドゥが可能な範囲内で、コマンド・コードの
全履歴が解らないと駄目でしょう。何故なら、直前のコマンド・コードだけで
はアンドゥをした時点で、直前のコマンド・コードはアンドゥのそれとなり、
意味が無くなってしまうからです。

[ ]
RE:07554 さらなる要望No.07620
bouz さん 05/04/27 10:05
 
A1.
>のどちらでしょう? それとも、これら以外の場合でしょうか?
(1) ですね。(2)はそう書いているのだったら順番は意識しているのだから必要ない
です。

A2.
> しかし、新たな疑問として、何を「同じタイプの処理」とするのでしょう?
これは、マクロが実行されたならマクロ、コマンド直ならそれ、という
秀丸のキーアサイン単位でいい、と思います。がっ

って書いてて、これじゃぁLastCommand(A1)とLastCommandUnit(A2共に仮称)
の両方いるじゃないか!と初めて意識したわけでした。
こりゃあ当分というか永久に無理かもしれない。
完全にネタ行きだ。トホホ。

[ ]
RE:07620 さらなる要望No.07626
Iranoan さん 05/04/27 12:39
 
 bouz さん今日は、Iranoan です。
> って書いてて、これじゃぁLastCommand(A1)とLastCommandUnit(A2共に仮称)
> の両方いるじゃないか!と初めて意識したわけでした。
> こりゃあ当分というか永久に無理かもしれない。
> 完全にネタ行きだ。トホホ。
 深く考え出すと、結構面倒くさいですね。

[ ]
RE:07505 さらなる要望No.07703
bouz さん 05/05/05 23:01
 
どうも、蒸し返してます。
社長の言っていたブリンク表示ですが、やはり打ち消し線と同じく何かスケジュール
みたいなテキストだか、
そんな風なマクロ使っているときに、Don't forget! みたいなんで使えますね。
で思ったんですが、それのためにカラー表示を増やすのもいいんですが、任意のテキ
スト領域をブリンクさせたり、
止めたりも便利かな、と思いました。
検索文字列みたいな感じですね。もう考えておられるのかもしれませんが。

[ ]