[PR]ޔԑg\
̔ԑg

最終更新日:2005-03-23

miのツールバーやシェルスクリプトのメモ

これを書いているときの環境

miのシェルスクリプトとは?

選択しているテキストをスクリプトで処理をしたもので置き換えられます。 サービスメニューで同様の処理ができますがわたしはサービスメニューを作れないのでうれしい機能です。

ツールバーにシェルスクリプトのツールを追加する方法

いろいろ方法があるようです


ツール登録メモ


メニュー「ツール」のメモ


miのシェルスクリプトメモ



自作mi用シェルスクリプト

テキストを選択して実行すると何かがおきます。

miのバージョンによってスクリプトの入力の文字コードが違うようなので動かない場合もあるかもしれません。 文字コードを&Jcode::convert(\$inText, 'euc' );などで自動変換にした方がよかったかな。

スクリプトファイルは文字コードEUC、改行コードLFです。 コピー&ペーストするときは貼付けた後の文字コード、改行コードが変わってないか気をつけてください。 SiteSuckerなどのダウンローダーでまとめて保存すると楽だと思います。

スクリプトは随時改良してます

まとめてテキスト置換するスクリプト

スクリプトはperlMultiReplace.plです。

複数の置換を一度にできます。何度も置換をやる場合便利だと思います。

置換するテキストの前にパターンと置き換えるテキストを書きます。空白行がパターンの終了の目印です。

$や\の扱いがよくわからないけど次のパターンで動くようになりました。

処理前

^(\d+)/(\d+)$
$1月$2日
$1
\\120
\\100
\$1
。$
?
^
* 

2/29
今日は寒かった。雪が降った。
明日は$1が\100ぐらいかな。
処理後

* 2月29日
* 今日は寒かった。雪が降った?
* 明日は\120が$1ぐらいかな?

タグを小文字にするスクリプト

スクリプトはlowerTag.plです。

属性と選んだ属性の値だけ小文字にできます。スクリプトをいじって調整してください。

処理前

<A HREF="skyFish.html" CLASS="Cool" TITLE="SUGOI OSUSUME">
スカイフィッシュ
</A>
処理後

<a href="skyFish.html" class="Cool" title="SUGOI OSUSUME">
スカイフィッシュ
</a>

HTMLの文字実体参照に変換するスクリプト

スクリプトはcharacterEntityReference.plです。

<、>、&だけ変換します。

文字実体参照の解説

HTMLの文字実体参照を解読するスクリプト

スクリプトはuncharacterEntityReference.plです。

&lt;、&gt;、&amp;だけ解読します。

HTMLの数値文字参照にするスクリプト

スクリプトはnumericCharacterReference.plです。

数値文字参照の解説

日本語対応だけど2バイト文字と1バイト文字の区別は適当です。

処理前

ねこloveです
処理後

&#12397;&#12371;&#108;&#111;&#118;&#101;&#12391;&#12377;

HTMLの数値文字参照を解読するスクリプト

スクリプトはunnumericCharacterReference.plです。

解読します。

処理前

&#12397;&#12371;&#12399;&#67;&#97;&#116;
処理後

ねこはCat

改行区切りのテキストをulのリストにします

スクリプトはcrToUL.plです。olにするスクリプトはcrToOL.plです。

リストが好きな人に

処理前

車
魚
家
処理後

<ul>
<li>車</li>
<li>魚</li>
<li>家</li>
</ul>

タグを全部削除するスクリプト

スクリプトはdeleteTag.plです。

簡単な正規表現置換なので普通のツールコマンドの正規表現置換でできると思います。

処理前

<a href="あそこ">どっか</a>
処理後

どっか

計算するスクリプト

スクリプトはcalc.plです。

処理前

10+10
処理後

10+10=20

一時的に処理に使うスクリプト

スクリプトはtmp.plです。

ツールバーのアイコンをオプション+クリックで簡単にスクリプトのファイルを開いて編集できるので、 こういうスクリプトを登録して使いたいときにちょっと修正して使うのも便利かもしれないです。

HTMLの文法とリンクをチェックするスクリプト

checkHTMLAll.plを使う場合もcheckHTML.plが必要なので同じフォルダに保存してください。 また、checkHTMLAllAtTerminal.plを使う場合はcheckHTMLAll.plとcheckHTML.plが必要です。

Another HTML-lintW3C Link Checkerを使って編集中のファイルの構文とリンクをチェックして結果を新規ウインドウに表示します。

準備がちょっとめんどくさいけど設定できれば1クリックでチェック結果。ジャンプリストはエラーの概要だけ表示。テキスト部分には詳細があります。の様なチェック結果を表示できます。 ジャンプリストで大まかな結果を表示しています。

スクリプトを動かす準備

Another HTML-lintとW3C Link Checkerはローカルで動かすのでスクリプトをダウンロードする必要があります。

W3C Link CheckerはCVS log for validator/httpd/cgi-bin/Attic/checklink.plで直接ソースをゲットしました。いっぱいありますけど消えてない一番新しいのを使ってみました。

checklink.plの一行目が#!/usr/bin/perl -wTですがこのままでは動かなかったのでTを消して#!/usr/bin/perl -wにしました。あとPerlのモジュールがいろいろ必要なので自分でいれる必要があります。入れ方がわからない人はビギナーのPerlメモを参考にしてください。

Another HTML-lintはAnother HTML-lintのダウンロードページにあります。以下のすべてが含まれるフルパッケージです。をダウンロードして使いました。

Another HTML-lintとchecklink.plの保存場所はどこでもいいのですがcheckHTML.plの中のAnother HTML-lintとchecklink.plをさしているパスを保存したところに書き換えてください。

スクリプトの動作

G3 400MHzでは1ファイルに数十秒かかります。時間だけならオンラインのサービスを使った方が早いです・・・。けど1クリックでサイト全体をチェックできるのは楽です。最近のMacだとオンラインのサービスのようにすぐに終わるのでしょうか?チェック中はmiで作業できないのでターミナルで実行するのも作りました。

CSSの文法をチェックするスクリプト

スクリプトはcheckCSS.plです。

W3C CSS 検証サービスでチェックします。結果はデフォルトブラウザで表示されます。CSSファイルが大きすぎるとURLが長くなりすぎて後ろの方が切れたり、ちゃんと動かなかったりするかもしれません。

UTF-8-MACによる文字化けを直すスクリプト

ユニコード、UTF、UTF-8-MACについて詳しく知らないので以下の内容は参考にしないでください。

スクリプトはiconv_-f_UTF-8-MAC_-t_UTF-8.plです。 テキスト全体を置き換えます。対象部分を選択する必要はありません。文字コードはチェックしていないので治らない場合もあるだろうし、文字化けしないテキストに行うと逆に文字化けするようになる場合もあると思います。

ターミナルでls -l > list.txtの様にして保存したテキストがTextEditでは文字化けしないのにmiでは文字化けしてどうしても読めるようにできない場合があります。 詳しいことはわかりませんが文字コードがUTF-8-MACになっているのではないかということでiconvでUTF-8に変換にしたら文字化けしなくなりました。ターミルナルで作成した以外でも同様のケースで効果があるかもしれません。

UTF-8-MACは特別な文字コードという訳じゃなくてUnicodeのエンコードの方法をiconvがそのような名前で呼んでいるだけのようです。普通のUTF-8とのエンコードの違いはConverting to Precomposed Unicodeに書いてあるようなことらしいです。

文字化けサンプルテキスト
ファイル ファイルサイズ 説明
mojibake-utf-8-mac.txt 39バイト 文字化けするテキスト。Caminoで見ると濁点が一文字になっている。
mojibake-utf-8.txt 33バイト 文字化けしない

リンクを作成するスクリプト

スクリプトはmakeAnchor.plです。

選択テキストにURLがある場合はURLのページのタイトルを調べてリンクを作成します。

処理前

http://tv.yahoo.co.jp/の番組表を見た
処理後

<a href="http://tv.yahoo.co.jp/">Yahoo!テレビ</a>の番組表を見た

選択テキストにURLがなくてクリップボードにURLがある場合はクリップボードのURLのリンクを作成します。

処理前

クリップボードに「http://www.google.co.jp/」が入っている状態で実行


グーグル
処理後

<a href="http://www.google.co.jp/">グーグル</a>

タブ区切りテキストをテーブルにするスクリプト

スクリプトはtabToTable.plです。

簡単なテーブルならなんとかなるかな。

処理前

*種類	ねこ	いぬ	ハムスター
*名前	みけ	ぽち	たろう
*性別	♀	同左	♂
処理後

<table border="1">
<tr>
	<th>種類</th>
	<td>ねこ</td>
	<td>いぬ</td>
	<td>ハムスター</td>
</tr>
<tr>
	<th>名前</th>
	<td>みけ</td>
	<td>ぽち</td>
	<td>たろう</td>
</tr>
<tr>
	<th>性別</th>
	<td colspan="2">♀</td>
	<!-- 同左 -->
	<td>♂</td>
</tr>
</table>
処理後の実際のテーブル
種類 ねこ いぬ ハムスター
名前 みけ ぽち たろう
性別

タブをスペースに変換するスクリプト

スクリプトはtabToSpace.plです。

タブ幅はスペース4文字です。

ソートと逆ソートするスクリプト

スクリプトはsort.plsort_reverse.plです。


自作ツールバーアイコン

漢字アイコンのツールバー

絵のわかりやすいアイコンを作れないのでこんなアイコンにしました。 何となくわかりませんか? こういうときに漢字って便利だなあって思う・・・。


リンク

mi
テキストエディタ「mi」の公式サイト
詳しいマニュアルもダウンロードできます。シェルスクリプト関係の説明もあります。