○何気ない日々の重複を探し出す
日々の所作のなかで大きな重複作業を見つけ出して、"塊"にして自動化のメカニズムを組み入れると、個人レベルでも効率化できることはある。
長年行っていると気が付かないが、なんか同じことを繰り返している動作・・・
まさしくこれじゃないか?コードのなかで意味を持ってしまう文字を普通にそのまま表示させるために、バックスラッシュ( \ )を入れて、エスケープする作業。
アンダースコア( _ )、バックスラッシュ( \ )、アスタリスク(*)あたりが筆者の場合、頻繁に遭遇する本文内のこれらの文字の手前に\を挿入たり、変換することで意図通りの表示に直す。以前にも書いた(記事)がタグ周りでタグが効かないケースも稀に出てくるので、目視でのチェックが必要で一括置換すると、たいてい何かがおかしくなるため厳禁だ。
これは、やってみる価値がありそうだ。やはりテキストエディター上で段落ごとに判断して、選択範囲ごとにアンダースコア( _ )とバックスラッシュ( \ )はエスケープ、アスタリスク( * )は( * )に変換という感じで対応することが多いが、結構な手間である。
○選択範囲を手軽に置換するのは便利
秀丸のマクロでツールを作成できそうだ。秀丸のreplaceall replaceallfast文と「特定の範囲内だけで検索したい場合」の例を参考に必要な箇所を変える。
disabledraw;
if(selecting) {
replaceallfast "検索A", "置換A", inselect2;
selectinselect;
replaceallfast "検索B", "置換B", inselect2;
selectinselect;
}
アンダースコア( _ )は、( \_ )に、バックスラッシュ( \ )は( \\ )にエスケープ、アスタリスク( * )は全角の( * )にそれぞれ置換したいのだから、
disabledraw;
if(selecting) {
replaceallfast """_""", """\_""", inselect;
selectinselect;
replaceallfast """\""", """\\""", inselect;
selectinselect;
replaceallfast "*", "*", inselect;
selectinselect;
}
ここまでで、書いた本文中の文章から拾って試してみよう。
選択範囲ごとにアンダースコア(_)とバックスラッシュ(\)はエスケープ、アスタリスク(*)は(*)に変換という自身で使えるものを作った方がいいのだ。
で上記マクロ実行してみると、
選択範囲ごとにアンダースコア(\\_)とバックスラッシュ(\\)はエスケープ、アスタリスク(*)は(*)に変換という自身で使えるものを作った方がいいのだ。
となった。最初のアンダースコアにバックスラッシュが2つ追加されてしまっている。
これでは意図した動作にならない。保存されないストリーム/バッファのなかで置換するので、最初のreplaceallfastでの置換を二つ目のreplaceallfastでさらに置換してしまっているようだ。
○順番を入れ替えてみると・・・
変数を使った別の形などいろいろ検討してみたが、マクロを開いてすぐに変えられるこの形は変えたくない。順番を変えてみよう。
disabledraw;
if(selecting) {
replaceallfast """\""", """\\""", inselect;
selectinselect;
replaceallfast """_""", """\_""", inselect;
selectinselect;
replaceallfast "*", "*", inselect;
selectinselect;
}
こうすれば、バックスラッシュを対象とした置換は1回だけになるはず。個数増の影響も気になるので、例文を倍増して試してみよう。
選択範囲ごとにアンダースコア(_)とバックスラッシュ(\)はエスケープ、アスタリスク(*)は(*)に変換という自身で使えるものを作った方がいいのだ。選択範囲ごとにアンダースコア(_)とバックスラッシュ(\)はエスケープ、アスタリスク(*)は(*)に変換という自身で使えるものを作った方がいいのだ。
これを選択し、順番を変えたマクロを実行すると、
選択範囲ごとにアンダースコア(\_)とバックスラッシュ(\\)はエスケープ、アスタリスク(*)は(*)に変換という自身で使えるものを作った方がいいのだ。選択範囲ごとにアンダースコア(\_)とバックスラッシュ(\\)はエスケープ、アスタリスク(*)は(*)に変換という自身で使えるものを作った方がいいのだ。
しっかり意図通り全部変換できている。なかで変換される文字を把握しながら追加しなければならないので、毎回試さないといけない。
.











![[USBで録画や再生可能]Tinguポータブルテレビ テレビ小型 14.1インチ 高齢者向け 病院使用可能 大画面 大音量 簡単操作 車中泊 車載用バッグ付き 良い画質 HDMI端子搭載 録画機能 YouTube視聴可能 モバイルバッテリーに対応 AC電源・車載電源に対応 スタンド/吊り下げ/車載の3種類設置 リモコン付き 遠距離操作可能 タイムシフト機能付き 底部ボタン 軽量 (14.1インチ)](https://m.media-amazon.com/images/I/51-Yonm5vZL._SL500_.jpg)