表紙 へ

[PREV][マクロ倉庫 INDEX][NEXT]

かぶねこ マクロライブラリ・3

ファイル関連

日時ヘッダつきファイル追加 L_DAppnd.mac(⇒ 読む拾う

現在編集中のファイル、これから手を入れるんだけど、このままのもちょっと取っておきたい、ということがあります。マクロを作ってるときなんか、とくにそうです。QXの設定でバックアップファイルを保存する、というやりかたもありますが、このマクロのように、べつな場所にあるファイル本体と同じ名前のファイルの後ろにどんどん追加していくというのは、短いファイルについてはより有効だと思います。

QXの基本機能の「ファイルへ追加保存 @Append」に少し追加して、いま編集しているファイルのファイル名とタイムスタンプを入れた「タイトル行(ヘッダ)」を入れています。範囲選択してからマクロを実行したときは、「現在時刻」が記録されます。

追加先のファイルを特定のスクラップファイルにして、情報をためるというような使いかたもできますね。

カーソル位置にファイルを読込み(履歴つき) L_InsDir.mac(⇒ 読む拾う

文章を書いていて、まとめて引用をするときや、すでに作成してあるファイルをメールに埋め込んで送信したいとき、読み込むファイルをわざわざ開くことなく指定して、編集ファイルのカーソル位置に読み込めれば便利です。そういう動作を実現するマクロです。

基本はシンプルで、QXエディタのマクロヘルプの open の項のサンプルをそのまま使っています。そこに他のマクロのために作ったフォルダ履歴保存機能を追加しました。open コマンドを使って、読み込むファイルを直接編集ファイルに書き込むので、クリップボードに履歴が残 ったりしません。また、期待どおりにいかなかったときは1回で UNDO できます。

フォルダ履歴が必要ないときは、よりシンプルな L_Insert.mac を同梱してありますので、そちらをお使いください。

フォルダリストから開く・保存 L_DirLst.mac(⇒ 読む拾う

L_DirLst.mac メニュー1ファイルを開いたり、現在編集中のファイルを保存したりするとき、楽にアクセスしたい。QXの「開く」ダイアログには「パス切替」の機能があるけど、それでさえちょっと面倒に感じる。さらに保存のときにはこの「パス切替」もない。う〜ん。

というあたりが理由になって作ったマクロです。QXフォルダに履歴を保存するファイルを自動で作成・更新し、使ったフォルダの履歴をとって、履歴にあるフォルダに即アクセスできるようにします。

フォルダを選択してから、目的のフォルダで「開く」ダイアログを表示、目的のフォルダに現在編集中のファイルを保存、目的のフォルダを常駐リストのファイル一覧で表示、目的の位置で DOS 窓を開く、のうちから実行するものを選びます。・ポップアップメニューで履歴を表示するとき、キーボードショートカットもつけて提示しますので、キーボード操作だけで簡単に実行できます。

カーソル位置単語でファイルを開く L_WdOpen.mac(⇒ 読む拾う

ふつうの文書にメモとしてファイル名を埋め込んだりすることってありませんか。そういう情報からファイルを開くためには「タグジャンプ」という標準機能がありますが、タグジャンプは「ファイル名+行数」という情報が必要です。行数も指定してあると、その情報がその行のどこにあろうと飛んでいってくれます。が、ファイル名だけから開いてくれるのは、その情報が行の先頭にあったときだけ、なんですね。

プログラムではない通常の文書を作成していると、ファイル名が行頭にないときにもファイルを開いてほしい、また、タグジャンプのように行を指定しないで、ファイル履歴にある位置で開いてほしい、と思うことがあります。また、HTML ファイルを編集しているとしょっちゅうリンク先を参照する必要があるので、HTML ファイル内のリンクをもとにQXで開くことができれば便利です。

このマクロはカーソル上の単語を取込み、パス指定に従ってファイルを開きます。パスの指定先に該当ファイルがないときは、現在編集中のファイルのフォルダでその名前のファイルを探します。それもなければステータスバーに「そのファイルがない」と表示します。

バージョン 0.60 から、ファイル名に加えて「ファイル名」+「#」+「ラベル」という HTML タグのリンク表記に準じたラベル指定も有効になりました。HTML ファイルでは該当のファイルのそのラベルを指定している NAME タグの位置、それ以外のファイルではマクロで指定したカッコにラベル文字列がある位置に、ファイルを開くと同時にジャンプします。

ちなみにQXでは HTML タグで使われるような相対パス表記をパスとして認識しますから、親フォルダやサブフォルダ、その他現在のファイルを基準としたパスによって、リンク先のファイルを開くことができるので、ブラウザなしで、ローカルなハイパーリンクが実現できます。さらにラベルを使うことで、リンク先に編集が加わって行数が変わっても、位置がずれずにジャンプできます。

QXの「カーソル位置の文字列を取得」コマンドを使っているので、日本語まじりのフォルダ名やファイル名を使っていると、うまくファイル名が取得できません。そういうときはファイル名全体を選択してからマクロを実行してください。

タグ情報コピー L_GetTag.mac(⇒ 読む拾う

タグ情報というのは、エディタがもつ「タグジャンプ」のための情報です。すなわち、ファイルの名前と場所、そして目的の文字列がある行、のことです。この情報でファイルからファイルへとリンクが可能です。

行番号はタグジャンプでは「論理行」を使います。「改行文字」で終わるひとかたまりが「論理行」です。(編集画面にあわせて右で折り返しているのは「表示行」といいます。)

まとまったファイルのグループのなかで、互いにリンクしたいが、このグループは他の場所に移動やコピーするかもしれない、というときは、絶対パスではなく、同じフォルダに置いてファイル名のみのタグでリンクしておくと融通がききます。いや、すでに絶対パスでタグを書いてしまった、というときは、ねこみみ さんの「複数ファイル一括置換」のマクロを使いましょう。(リンクページ参照。)

編集処理

整形解除(ベタテキスト化) L_DelCr.mac(⇒ 読む拾う

QXエディタで、基本機能の「整形(改行を挿入)」や、自動整形後の保存、また手動の整形作業をしたテキストについて、行末の改行を取ってつなぎ、「ベタテキスト」(パラグラフの切れ目以外には改行がないテキスト)にします。

QXの基本機能の「改行を削除(整形)」では、整形したときの自動整形の1行文字数と現在設定してある文字数が違う場合や、整形されたものに手を加えて1行の文字数がばらばらのものについては、対処していません。これは引用を含むメール文書など、複雑な条件に対応するためだと思われますが、とりあえず全部つなぎたいときもあります。そんなときのためのマクロです。

QXの「書式設定」−「箇条書き」で「箇条書きインデント」がオンになっているときは、箇条書き記号に設定されている文字を認識して、箇条書きの先頭は前の行につながないようにします。数字や英字を自動的に箇条書き文字として判断する機能はありません。

整形解除したい部分を選択してから実行してください。

変換テーブルによる漢字置換(旧漢字変換用) L_QKanji.mac(⇒ 読む拾う

QXエディタで開いているファイルの漢字を用意した変換テーブルにもとづいて置換するマクロです。おもに新漢字と旧漢字の変換を目的にして作成しました。

画面を表示しながら現在カーソルがある位置から末尾に向かって置換していきます。「一括」作業で実行してあとは画面を眺めているだけ、という方法と、変換候補の文字ごとにカーソルが止まって変換するかどうかたずねてくるので、そのつど YES か NO で決めていく方法とが使えます。また、置換を実行した部分には「目印」が入ります。

L_QKanji.mac 画面

長いファイルの処理では、[ESC] で途中で中断して、また後でその位置から開始できます。一括置換でも、逐次確認による置換でも、マクロを起動してからの処理はまとめて1回の UNDO です。

使用した変換テーブルファイルはリストに保存され、マクロを次に起動したときにはメニューに追加されています。

とりあえず動作を確認するための変換テーブルのサンプル「新から旧.txt」が付属しています。このファイルは でび さん ( ⇒ 【 でびの部屋 】 ) による QGrep およびQXエディタのための「文字同一視テーブルファイル」(QXGFIND.LZH QX,QGREP用 漢字同一視 v1.0)をもとに、わたしが自分の好みで編集したものです。

使いかたと変換テーブルの作りかたは、付属のファイルで解説しています。お使いになるときはよく読んでください。

ソフトタブ処理マクロ L_SftTab.mac ver. 0.80(⇒ 読む拾う

こんなことをするためのマクロです。

プロシージャが3つ入っています。適当にメニューやキーに割り当てて使ってください。

[PREV][マクロ倉庫 INDEX][NEXT]