2013年6月28日金曜日

秀丸マクロ:最後に編集した位置へコピーするマクロ

今回紹介するSimplyTerms(ST)同梱マクロは、置換した語句などを簡単にコピー&ペーストする「Copy_LST」です。

訳文を入力するときに、一括置換した用語を見ながらキーボードから入力し直すと、入力のための手間暇もかかるし、入力ミスや誤変換をする可能性もあります。このマクロを使えば、一括置換した用語や「AddTerm」マクロで置換した用語を簡単に訳文に貼り込むことができるので、手間暇は減り、入力ミスや誤変換も減らすことができます。

マクロの動作

  • 単語(またはフレーズ)を選択している場合
選択した範囲を、最後に編集した位置に貼り込みます。(toやandなどのいくつかの前置詞や接続詞、句読点を選択範囲した場合は、「から」「と」などと変換されて入力されます。詳細は後述)
  • 範囲選択していない場合
カーソル位置が最終編集位置とは異なる場合は、そのカーソル前後のスペースやテン、カンマ、改行、@などで挟まれた部分を、最後に編集した位置に貼り込みます。
カーソル位置が最終編集位置のママの場合は、現在編集中のテキストファイルのサブ拡張子が「_eng」の場合、「, 」(カンマ+半角スペース)を挿入し、それ以外のファイルの場合は、「の」を挿入します。

※秀丸で「最後に編集した位置」を一目見てわかるようにするには、メニューの[その他]→[ファイルタイプ別の設定]→[デザイン]→[表示]で「最後に編集したところを表示」にチェックを入れます。「Copy_LST」マクロを使う前に設定を確認してください。



では、このマクロを下の文章の英日翻訳で試しに使ってみましょう。Wikipediaの「Cresol」のページの一部です(http://en.wikipedia.org/wiki/Cresol)。

---------
In its chemical structure, a molecule of cresol has a methyl group substituted onto the ring of phenol. There are three forms (isomers) of cresol: ortho-cresol (o-cresol), meta-cresol (m-cresol), and para-cresol (p-cresol). These forms occur separately or as a mixture.
---------

テクニカルタームを一括置換したものが、下の文章です。

---------
In its chemical structure, a molecule of クレゾール has a メチル基 substituted onto the ring of フェノール. There are three forms (異性体) of クレゾール: ortho-クレゾール (o-クレゾール), meta-クレゾール (m-クレゾール), and para-クレゾール (p-クレゾール). These forms occur separately or as a mixture.
---------

訳文を作っていきます。下の文章は、一文目を訳し終わったところです。
(↓この文章をコピーして「クレゾール_jpn.txt」などの名前でテキストファイルを作ってから、マクロを試してみてください。)

---------
クレゾール分子は、フェノールの環上の水素の一つがメチル基に置換された構造をしています。

There are three forms (異性体) of クレゾール: ortho-クレゾール (o-クレゾール), meta-クレゾール (m-クレゾール), and para-クレゾール (p-クレゾール). These forms occur separately or as a mixture.
---------

一文目に引き続き、二文目を「クレゾールには、o-クレゾール、m-クレゾール、p-クレゾール、と三つの異なる形(異性体)があります。」と入力したいと思います。

まず、一文目の最後の「。」のあとに「最後に編集した位置」マークがあることを確かめます。


(他の所に「最後に編集した位置」マークある場合、この一文目の最後の「。」のあとにスペースを入力して、バックスペースで消せば、そこが「最後に編集した位置」になります。)←この括弧内の動作をマクロにしたものが、後述の「MoveEditPoint2CurCursor」マクロ。

そして、英文の「There are three forms (異性体) of クレゾール:」の「クレゾール」を範囲選択し、「Copy_LST」マクロを実行します。

---------
クレゾール分子は、フェノールの環上の水素の一つがメチル基に置換された構造をしています。クレゾール

There are three forms (異性体) of クレゾール: ortho-クレゾール (o-クレゾール), meta-クレゾール (m-クレゾール), and para-クレゾール (p-クレゾール). These forms occur separately or as a mixture.
---------

クレゾール」が一瞬でコピー&ペーストされました。カーソルは、いまコピー&ペーストされた「クレゾール」のあとにあるので、そのまま「には、」とキーボードから入力します。そして今度は「o-クレゾール」を範囲選択し、「Copy_LST」マクロを実行すると、また一瞬で「o-クレゾール」がコピー&ペーストされました。このように、キーボードからの入力と、すでに置換してある用語のコピー&ペーストを繰り返すと、二文目の入力が終わります。

---------
クレゾール分子は、フェノールの環上の水素の一つがメチル基に置換された構造をしています。クレゾールには、o-クレゾールm-クレゾールp-クレゾール、と三つの異なる形(異性体)があります。

There are three forms (異性体) of クレゾール: ortho-クレゾール (o-クレゾール), meta-クレゾール (m-クレゾール), and para-クレゾール (p-クレゾール). These forms occur separately or as a mixture.
---------

今回は、範囲選択をしてから「Copy_LST」マクロを実行しましたが、範囲選択しない場合は次のような動作をします。
  • カーソル位置が最終編集位置とは異なる場合
そのときカーソルがある前後の、スペースやテン、カンマ、改行、括弧、@などで挟まれた部分がコピー&ペーストされます。今回の例の場合、最初の「クレゾール」のときに範囲選択せずに「クレゾール」の「レゾー」あたりにカーソルをおいて「Copy_LST」マクロを実行すると、「クレゾール」だけがコピー&ペーストされますが、二箇所目の「o-クレゾール」のときに範囲選択せずに「レゾー」あたりにカーソルをおいて「Copy_LST」マクロを実行すると、「(o-クレゾール)」がコピー&ペーストされます。
 ※日英翻訳の場合、ST(または「AddTerm」マクロ)で置換した英単語の前後にはスペースが挿入されているはずなので、基本的に英単語のみがコピー&ペーストされます。

  • カーソル位置が最終編集位置のままの場合
現在編集中のテキストファイルのサブ拡張子が「_eng」の場合、「, 」(カンマ+半角スペース)を挿入し、それ以外のファイルの場合は、「の」を挿入します。


範囲選択してから「Copy_LST」マクロを実行する場合、以下の左側の語と記号は右側のように変換されてからペーストされます。
to → から
or → や
and → と
at → における
. → 。
, → 、
。 → . (ピリオド+半角スペース)
、 → , (カンマ+半角スペース)

(このように変換されて欲しくないときは、「Copy_LST.mac」の104行目から113行目を書き換えます。)

このように、このマクロを使うと、すでにある語句を簡単にコピー&ペーストすることができますので、翻訳のみならず、原稿やブログを書くときにも使えます。私はこのマクロをマウスの親指から二番目に近いボタンに割り当てて使っています(一番近いところには、「辞書引きをするマクロ(Dic_DDJamming.mac)」)。

******************
この「Copy_LST」マクロを使うときに一緒に使うと便利なのが、上でちょっと触れた「MoveEditPoint2CurCursor」マクロです。
改行の直前でマクロを実行すると、そこが「最後に編集した位置」になります。
(スペースを入力して、それをバックスペースで消しています。)
文の途中など、改行の直前ではないところでこのマクロを実行すると、改行をしてから、その改行の直前が「最後に編集した位置」になります。

この「MoveEditPoint2CurCursor」マクロにも入力しやすい位置のショートカットを割り当てておくと便利です。

0 件のコメント:

コメントを投稿