(679)キーボードマクロが使えるストリームエディタ (1)。
ストリームエディタでキーボードマクロが使えるはずがないですよね~(笑)。
ですから、今回の記事のタイトルは自己矛盾を含んでいます。
まぁ、はっきり言ってウソです(笑)。
真意は、「VZエディターを使ってストリームエディタで行うのと同じようなことをする」「その場合にキーボードマクロを利用することができる」ということです。
「ストリームエディタってなんのこと?」「何ができるの?」っていう方のために、先にBlueSkyの説明を書いておくと、、、
「ワープロやエディターで書いたり読み込んだりできるファイルに対して、同じ処理を、一行ずつ自動的に行うことができるデバイスプログラム」ということです。
(あとで、ウィキペディアからストリームエディタの定義を引用します)
ここで、「ワープロやエディターで書いたり読み込んだりできるファイル」といっているのは、テキストファイルのことです。
キーボードマクロのことはもうご存知ですよね。
テープレコーダーで声を一度録音したら、あとは何回でも再生できるのと同じように、200LX上でキーボードを押す動作を一回登録することで、何回でも同じ動作を行うことができる方法です。
さて、具体的な話に進みます。
今回お話するのは、VZエディターの上で、
(1) あらかじめ、繰り返し処理のためのdefファイル(マクロプログラム)を用意しておいて、
(2) 一行処理の手順をキーボードマクロで記録して、
(3) そのキーボードマクロをdefファイルに埋め込んで、
(4) VZエディターの上で、その外部マクロのdefファイルを実行させることで
(5) ストリームエディタで処理するのと同じようなことをする
ということです。
ところで、「ストリームエディタ」をwikipediaで検索すると、
>ストリームエディタ (英: stream editor) は、テキストエディタの一種であり、テキストをあらかじめ指定した手順により一括処理(バッチ処理)を行うソフトウェアである。
>ストリームエディタとしては、AWK、Perl、Ruby、Pythonなどのスクリプト言語を使用できる。
と書いてあります。
処理するには、「あらかじめ指定した手順」が必要なんです。
その手順に従って「一括処理(バッチ処理)を行う」わけです。
もっとも有名なのは、sedですかね。(Stream EDitor の略でしょうか)
で、そのsedについては、
「sed basics - ストリームエディタの基礎」のサイトに、
http://www.aihara.co.jp/~taiji/unix-tips/a2asterisk/sed-howto-0.html
>ストリームエディタ sed は一行ずつ入力しフィルタする。スクリプトを指定することにより様々な編集を施すことができる
>利用者は、パターンスペースと呼ばれるバッファに対して、コマンドにより、文字置換や正規表現による置換が出来る。
と(難しいことが)(笑)書いてあります。
一方で、wikipediaのストリームエディタ」の項では、スクリーンエディタについて、
>これに対して、スクリーンエディタやラインエディタは、人が対話的に使用するエディタである。
と書いてあります。
スクリーンエディタっていうのは、BlueSkyの説明では、「プリントアウトできないワープロプログラムのこと」です。ここで説明しているVZエディターがこれです。
ラインエディタっていうのは、たった一行しか書けない(笑)エディタのことです。
sedなどのストリームエディタというのは処理「言語」ですから、その「言語」の習得が必要です。言語をある程度学習・習得して、正規表現による「スクリプト」を書ける必要があります。(その場でコマンドを書いて処理もできます)
今回の話は、まったく学習・習得しないで、ストリームエディタで処理するのと同じようなことをスクリーンエディタであるVZエディターでしている、その方法のことです。
で、すぐ本題に入ります。
I. VZエディターで、キーボードマクロを記録し始めるには、[ctrl]+[-]を押します。
キーボードを押すことで一連の処理を行ったあと、キーボードマクロを終了させるには、[ctrl]+[6]を押します。
(ほんとうは、[ctrl]+[6]だけじゃなくて、、[ctrl]+[ナントカ]のキーでも良いのですが)
(私の場合、ほかのキーとバッティングしないように[ctrl]+[6]としています)
これで、一連の動作(キーボードマクロ)が記録されます。(テープレコーダでいえば「録音」です)
同じ動作を実行するためには、[ctrl]+[6]を押します。(テープレコーダでいえば「再生」です)
すごく簡単なこの動作(録音)ができれば、同じ動作を何回でも繰り返すこと(再生)ができるわけです。
これは、200LXシスマネのシステムマクロとほとんど同じです。
キーボードマクロというのは、システムマクロと同じように、「自動実行」ではなく「手動実行」です。手動で[ctrl]+[6]を押すことで実行されます。
II. 次に、「自動実行」の話に進みます。
キーボードマクロの実行手順は、じつは、VZエディタの中に記録されています。
それを下に示す repeat.def の指定の場所に書き出すことで、「自動実行」のプログラムを作成することがでるんです。
その repeat.def の内容は以下のとおりです。「REPEAT.DEF」をダウンロード
========repeat.def ========
* M マクロ
85 "CTRL+\を繰り返す" ;[ESC]^で外部マクロが使える。
:L ;ここに^K_でCTRL+6のキーボードマクロをいれる
#c#<"@@"&13
;VZ.DEFのあるディレクトリにREPEAT.DEFの名前で
;保存してください。
;呼び出すときは、「ESC」の後で、「^」です。
(r<0)? >E ;ファイル最後(OR文字列検索が見つからない)
;に達したら終了
>L ;
:E ;
#^ ;文頭にジャンプ
* P メニュー
1 "",36,1,30
&85
*======== End of Add.def ========
私自身が、このマクロの使い方を忘れちゃうことがあるので(笑)、使い方そのものをこのファイルの中に書き入れてあります。
1. 自動実行ファイル(defファイル)の作り方。
上に書いてあるように、前もって、この repeat.def をVZ.DEFのあるディレクトリに保存しておきます。
このdefファイルをVZに読み込んでおいて、上から4行目の「#c#<"@@"&13」が書いてあるところに、すでに記録してあるキーボードマクロ書き出します。
キーボードマクロの書き出し方は、ここに書いてあるように[ctrl]+[k]を押してから、[shift]+[-](アンダーバー)です。
前に書いてある「#c#<"@@"&13」は削除します。(前回マクロを使ったカスなのです)
たったこれだけで、新しい自動実行プログラムの作成は終了です。
書き直した repeat.def は、同名でも別のファイル名でもよいですから、保存しておきます。
2. 自動実行の方法。
キーボードマクロを記録した時に、実際にそのマクロがうまく動作することを確認しておく必要があります。
つまり、そのキーボードマクロを何回も実行してみるということです。
10回程度実行するだけなら、もともと、自動実行プログラムを作る必要がないです。
何百回とか何千回も同じ動作を実行したい時に、自動実行プログラムの意味があります。
キーボードマクロは、カーソルが行頭にある状態から始めます。そして、その一行について処理を行ったら、最後にカーソルを行末に移動させて、最後の最後に次の行の行頭に移動して終了となるようにしておきます。
つまり、キーボードマクロを、一行について処理をして、また、次の一行について処理をして、、、と一行ずつ処理するように構成しておきます。
一行ごとのその処理行為を、文末にブチあたる(エラーになる)まで、えんえんと何回でも実行せよというプログラムなんです。たんにそれだけの機能です。
(繰り返しの)自動実行を開始するには、(単発の)(手動実行の)キーボードマクロを実行する代わりに、[ESC]を押してから[shift]+[quicken]を押します。
すると、どのdefを選ぶかの画面になりますから、この repeat.def を選んで「enter]を押します。
3. すぐに実行が始まりますから、あとは自動実行マクロが終了(ストップ)するのを待ちます。
ここには詳しく書きましたが、じっさいにやってみればごく簡単な手順です。
もしも「やり方」を忘れたら、この repeat.def を vz に読み込んで、やり方を思い出せば良いだけです。
以上で、「キーボードマクロが使えるストリームエディタ」の話は終了っ。
次の項で、実際に使ってみることをお話します。
最近のコメント