« テキストの入れ替え2 | Main | 海外の翻訳会社との取引1 »

2017.12.09

括弧内の入れ替え

これを実現しようとするとキー操作が多くなり意外に面倒である。例えば(山田太郎)を(太郎山田)としたいときである。そこで一連のキー操作をスクリプトにしてマクロに登録することを考える。

まず括弧とそれに囲まれているテキストを一つの論理行にしておく。つまりその行内にはそのほかのテキストはないという状態にしておく。カーソルは入れ替えをしたい区切りのところ、上の(山田太郎)という例では、姓と名前の間に置いておく。

入れ替えのキー操作を順番に記述すると、カーソルのあるところから後のテキストを論理行末まで一旦選択して、そこから選択部分を一つ左に動かして減らす。これで閉じる括弧を除いてカーソルの後のテキストが選択されたので、それを切り取る。次にカーソルを論理行の行頭に一度動かしてから一つ右に動かす。そこに切り取っておいたものを貼り付ける。

これで括弧の中身だけの入れ替えが実現して、(太郎山田)となった。秀丸では次のようなスクリプトになる。

setcompatiblemode 0x0F;
disabledraw;
//論理行の行末まで選択
//範囲選択開始
  beginsel;
//論理行末に移動
  golineend2;
//一つ左に
  left;
//切取り
  cut;
//論理行の行頭に移動
  golinetop2;
//一つ右に
  right;
//貼付
  paste;
endmacro;

なお、このスクリプトは、前後を入れ替えるときに行頭と行末の一文字ずつを除くという指定をしているだけで、文字種は指定していない。

従って前後にくる括弧の全角・半角の違いは問わないし、墨付括弧や山形括弧などどのような文字でも構わない。また中のテキストも全角・半角や和文・英数字など特に制約はないので意外に重宝すると思う。お役に立てば幸いです。

|

« テキストの入れ替え2 | Main | 海外の翻訳会社との取引1 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/20048/66138406

Listed below are links to weblogs that reference 括弧内の入れ替え:

« テキストの入れ替え2 | Main | 海外の翻訳会社との取引1 »