2008年12月23日火曜日

第102回目 やはりエディタは重要(その2)

○第102回目 やはりエディタは重要(その2)

 質問です。前回紹介のマクロはどのくらい便利なのでしょうか。
 名前はなんというのでしょうか。

 名前は、"どこでもコピデル"といいます。コピー等の編集機能のマクロとしては、まあまあ使えると思っています。

 まず、ちょっとなあという点から。

□このマクロでにおける違和感は、二回目以降の処理の時です。コピーを例にとりますと、通常の操作では、あれをここにという発想になります。しかしながら、このマクロは、ここにあれをということになります。1回目は"ここに"の指定が省略されていますので気にならないのですが、2回目以降、ああそうだった、そうだった、となることがあるのです。
=⇒誤った操作をした場合ために、処理を初期化(回数を0とする)する機能をESCとして追加しました。処理区分はそのままです。
□次にあるのは、連続処理とってもほとんど1回か2回で終わってしまうことです。連続処理のメリットが感じられないなあ、ということです。
=⇒これはどうしようもありません。
□また、先頭位置の指定後に、終了させてしまうと、選択が残っているので、通常処理にするには、ESCキーを押す必要があるということがあります。キーが効かないということになります。それは選択状態で終わってしまったということが原因です。
=⇒終了する時に、選択状態である場合は、選択状態を解除するという処理を入れました。
□Shiftを押すと、最後に修正した箇所へ飛びますが、癖でShiftを押してしまうことがあります。すると、思わぬところへ移動してしまうので、元の場所がわからなくなることになります。Shiftの機能をはずすのも忍びないし…。
=⇒大きく移動する時(しばらくはShiftの場合に限定)には、移動前の場所を取得しておき、その場所に戻るという機能をF9として追加しました。デフォルト値は、貼付先とします。
=⇒見出し一覧から移動した場合、元の場所へに戻るというケースにも対応しました。
□これをあそこにコピーしたいといった時、いったんあそこにいってから、ここに戻ってくることになり、カーソル操作に無駄がでる。
=⇒コピーの逆指定機能をF8として追加しました。最初からでも逆指定できます。(やればできるものですね)
□クリップボードのある部分を貼付けられないか。つまり、QTCLIPを起動できないか。
=⇒通常通りのショートカットでQTCLIPを呼び出すことはできます。しかしながら、通常通りの操作では貼付まではできません。しかし、必要な文字列をクリップボードの先頭には動かすことができるので、その後それを貼り付けるという処理を行えばよいようです。クリップボードの内容を貼り付けるという機能をF4として追加できるかもしれません。
=⇒うまくいきません。QTCLIPの画面を出しておき、QTCLIPの中でマウスで必要な文字列を先頭に移します。QXエディタにもどりF4で貼り付ける、という方法が無難です。
□この機能を使えば、こういうことができるのでしょうか。このマクロの中でコピーしたものを複数回簡単に貼り付けること、ができる。どうなんでしょうか。
=⇒直前にコピーしたのはクリップボードの先頭にありますので、クリップボードからの貼付(すなわちF4)をすれば、それが貼付けられることになります。また、先頭になくても、前に紹介とたとおり、QTCLIPで該当文字列を先頭に持ってきて(マクロ中にできます)から処理を行えば、同様に複数回のコピーができます。
□直前のものだけではなく、前に貼付けたものも簡単に貼付けられませんか。
=⇒貼付けたものの履歴を取っておき、それを呼び出し、そこから指定したものを貼付けるという機能は面白いでしょうね。対応してみましょう。
□既存の文字にかぶせる、置き換えることはできますか。削除と一緒にできるといいですね。
=⇒難しそうですね。逆指定の中で何とかできるかもしれません。つまり、貼付先を指定するときに、範囲として指定するのですが、そうした場合、カーソルを改めて動かすことなく、貼付けると置き換わるのではないでしょうか。
=⇒だめですね、範囲の指定がいまのままだとできません。範囲の指定開始という情報を与えなければなりません。
 現状ではできないという整理にしておきます。
□削除の機能で、選択範囲が自動的に増えていくというのはどうでしょうか。適当なところで止めて微調整をし削除する、てな感じです、どうでしょうか。
=⇒面白いことを考えるなあという感想です。これ一辺倒というわけにはいかないので、区分する必要があります。DのかわりにFを押すと、この機能が動くというのどうでしょうか。止める時は矢印キーでもよさそうですね。そしてそれから通常の処理に戻して微調整をするということになるのでしょうか。プログラム上の表現としては、今のループに載せるか、もっと小さなループを作りまわしていくか。今のループの機能が複雑化するので、もっと小さなループを作るという選択でしょうか。
=⇒やってみました。確認できました。このことのノウハウで、見出し一覧から場所を指定する際の指示をenterキーで可能になりました。余禄がありました。
□それができるなら、コピーのときの範囲指定も同様にしてくれませんか。
=⇒徐々に要求が大きくなりますなあ。先ほどのものを基本に考えますと、現在のプログラムではそれほど複雑な処理になりません。通常処理での動作確認はしました。
□コピー元をどんどん蓄積していって、その累積を貼付というのはできませんか。
=⇒いろいろなところからもってきたものを、ここに貼付けるということになりますから用途はあると思います。この機能は別のマクロして整理しています。考え方が違うので、現在のマクロに入れるのは難しいと思っています。別のマクロを使ってくださいという整理でしょうか。多少は補助する機能として、前の場所にもどるという機能がありましたが、これで拡張します。貼付の後、そのあたりの場所で貼付位置を指定します。そして、F9をおすと、前のコピー元があった場所に移動するので、そこからコピー先を探しにいけることになります。少し一括貼付の一部を取り入れたことになるでしょう。
□日付とか、ファイル名とかを入力できませんか。短縮入力にそんなものが入っているんですが、短縮入力が使えればいいと思いますが。
=⇒短縮入力は3つ可能ですが、それらすべてということになると、入力値が多くなりますので、ひとつのみということで対応しましょう。いろいろなところから必要な文字列を引っ張ってこれるというコンセプトを満たしています。F6キーに設定してみます。
=⇒短縮入力の画面は出るのですが、その後の処理ができない。マウスも効かない。見出し一覧の場合とは違う。したがって、対応不能。
□さらに、あのファイルのものが使いたいが、開いていない。新しいファイルを開いてその中のものを使えないか。
=⇒右のエリアにファイルの履歴がありますが、それを開くのはマウスで可能なので開けるのではないかと思います。そのファイルに制御を移すために、ウィンドウのハンドル名を再取得する必要があります。
=⇒マウスは効きません。対応不能なので、マクロを終了させ、該当ファイルを開き、改めでマクロを実行してください。
□しおりの役目として、途中でスペースを入れたいと思う時があるのですが。
=⇒確かに、後で修正したいなというような場所、挿入した箇所をはっきりさせたい場所に、それとわかる記号を入れておきたい時がありますね。スペースがいいのですかね。もっとはっきりさせるために改行はどうでしょうか。いろいろとキーを使っていますので、あまり使えるキーが少なくなっているというのが現状です。Ctrlを押すことによって改行が挿入されることにしましょうか。
※最終形のマクロは各自の課題として内容掲載は省略します。

0 件のコメント: