置換文字列をマクロで取得したいっ(^^;)No.00158
セキセイニャンコ さん 98/06/23 11:21
 
こちらの会議室でははじめましてになります m(__)m
急速に秀丸エディタにはまっている、セキセイニャンコと申します。

ええと、長年 mifes に慣れた者が、本気で秀丸に乗り換える気になって、
以下のような条件のチューニングに夢中になっているのですが...

(1) mifes の細かいところにまで慣れ切った人間が、どうしても譲りたくない部分
    だけは、mifes風にチューニングして、指が勝手に間違えることだけは避けたい。
(2) 秀丸の美味しいところは、余さず前面に出しておきたい。
(3) 細かいところは、ダイヤモンドカーソルを常用する人向きのチューニング。
    従って、使用頻度のある程度高いものは、左手だけで楽に操作できるように
    チューニングしたい。
(4) 私のチューニングをそのまま頂戴する人間もいるので、ファンクションキー
    などの、いわゆる標準的操作だけでも、(1),(2)を満たす設定をしたい。
(5) 複数のマシンを操作する場合や、気力が衰えている時^^;などのために、
    マウス操作だけでも、(1),(2)を満たすようにしておきたい。

そんなわけで、かなり短期間で秀丸に習熟してきた自負はあるんですが、今一番
やりたくて方法がみつからないでいることは「検索文字列をマクロで取得したい」
ということです(置換を伴わずに「設定だけ」もできればもっと良いのですが、
これはまだ試していませんが、少々強引な方法を思いついています)。

検索文字列をマクロで取得するために、ウィンドウを新規作成して、その中で
ぐちゃぐちゃ^^;やれば、取得できないことはないのですが、これだと表示系を
disable しておいても窓が開いて(後で閉じて)しまうところが見えますし、
時間もかかります。編集中のところで同じことをするのは流石に気が引けますし、
内容次第では間違いも起きてしまいます。

それ以前に、こういう方法を採ると、クリップボードだとか undo バッファに
影響を与えてしまうので、それをしたくないのです。

そこでレジストリを探したら、あるにはあったのですが、置換文字列などが
どうやらバイナリデータになっていて、ヒストリ全体として保持されている模様で
試してみても、getregstr では持ってこれませんでした(長さだけは取れた(^.^;))。

さぁて、私の見逃している手段はないものでしょうか?
もし、ない...が正解ならば、是非是非、バイナリ型のレジストリの、取得機能
だけでも作ってやって下さい。贅沢は言いません。ヌル区切りになっているところの
先頭だけでもいいです(十分贅沢かもしれない(^-^;))。お願い致します。

できたものを公開した方がよろしければ、そのようにさせて頂きますので、お願いっ!

[ ]
RE:00158 置換文字列をマクロで取得したいNo.00159
杉浦 まさき さん 98/06/24 02:17
 
セキセイニャンコさん、はじめまして。
 杉浦 まさき と申します。

>やりたくて方法がみつからないでいることは「検索文字列をマクロで取得したい」
>ということです(置換を伴わずに「設定だけ」もできればもっと良いのですが、
>これはまだ試していませんが、少々強引な方法を思いついています)。

えっと、これは今までに使った検索文字列を取得する、という意味ですか?
 検索文字列ヒストリの全ては取得できませんが、
 最新の物であれば searchbuffer というキーワードで取得できますよ。
 #ex. $latest_searchstring = searchbuffer;
 ##同じく現在の検索オプションは searchoption という
   キーワードで取得できます。
   詳細はマクロヘルプの「検索系文」の「setsearch」を
   参照して下さい。

>もし、ない...が正解ならば、是非是非、バイナリ型のレジストリの、取得機能
>だけでも作ってやって下さい。

上のが正解かどうかはわかりませんが、
 マクロからは REG_SZ か REG_DWORD 型の変数しか取得できません。
 #そういや検索文字列ヒストリって何でバイナリ型で格納してるんだろ?

>できたものを公開した方がよろしければ、

遠慮なさらずに(^^;どんどん公開して下さいV(^^)V。


[ ]
RE:00159 置換文字列をマクロで取得したいNo.00160
セキセイニャンコ さん 98/06/24 03:05
 

杉浦 まさきさん、こんにちは。お世話様です。

>えっと、これは今までに使った検索文字列を取得する、という意味ですか?
> 検索文字列ヒストリの全ては取得できませんが、
> 最新の物であれば searchbuffer というキーワードで取得できますよ。
> #ex. $latest_searchstring = searchbuffer;
> ##同じく現在の検索オプションは searchoption という
>   キーワードで取得できます。
>   詳細はマクロヘルプの「検索系文」の「setsearch」を
   参照して下さい。

あ、これは私の書き間違いで、タイトルと同様「置換文字列」のつもりでした。

ところで、つい先ほど、openfile "/h" というものの存在に気づき、それで
やってみたところ、まずまず速かったので気を良くして、早速本来やりたかった
ことをしてみました。

>   S 検索文字列を入力"
>   A 検索文字列を Alt-Buffer から選択
>   R 置換文字列を入力"
>   E 置換文字列を Alt-Buffer から選択
>   -----------------------------------------
>   Q 検索文字列の内容(選択でこれを貼り付け)
>   W 置換文字列の内容(選択でこれを貼り付け)
>   -----------------------------------------
>   1 大文字/小文字     区別する→区別しない
>   2 正規表現/直接     正規表現→直接検索
>   3 文字列/単語       単語検索→文字列検索
>   4 あいまい/厳密     あいまい→厳密
>   5 置換/検索         置換→検索
>   6 置換の問い合わせ   する→しない

だいたいどんな感じのものを作ったのかと申しますと、マクロで上のような
メニューを表示したわけです。これで、検索文字列だけ設定、置換文字列だけ
設定、というようなことが、少々強引でしたができました。また、このメニュー
自体が、検索・置換文字列・主要オプションの現在状態確認の意味にもなって
います。

これをマクロ1に登録して CTRL+1 で使用し、上検索・下検索がF1・2に
してありますので、左手だけでかなり楽にやりたいことができるようになり
ました。

なお、上記の Alt-Buffer というのは、私が適当につけた名前の自作機能で、
Alt-A〜Z(その他)に、それぞれ別々のカット&ペーストバッファを持たせた
ようなもので、検索・置換文字列を、その中から選べるようにしたものです。
これもマクロによる機能なので、ちょっと説明しきれませんが... m(_ _)m

ということで、出会っていた問題というか、当初の目的は勝手に^^;達して
しまいました。それはそれとして、バイナリ型のレジストリの、取得機能は
是非欲しいものです。よろしくお願いします&お騒がせ致しました。

[ ]
RE:00159 置換文字列をマクロで取得したいNo.00170
セキセイニャンコ さん 98/06/27 12:55
 
>>できたものを公開した方がよろしければ、
>
>         遠慮なさらずに(^^;どんどん公開して下さいV(^^)V。

えっと、ここのデータライブラリの使い方がいまいちわからなかったので^^;;、
なんと NIFTY Serve の FWINAL LIB 19 に登録してしまいました m(__;m。
まだ公開されていませんが、多分 #1291 で公開されるものと思います。
転載自由ですので、奇特な方がいらしたら、こちらへもどうぞ^^;;。

キー割り当てファイルと53個のマクロになりましたが、マクロ登録の 1〜50 を
全部埋めてしまいましたので、ここにいる方々には使いようがないかもしれません。
でも、履歴の順序逆転とか、ダイアログを開かずに検索オプションを変えたりとか...
局所的に面白いものもありますので、ご自分でマクロを作る方は、つまみ食いが
可能かもしれません。


[ ]