皆さんは、プログラミング以外での用途では、テキストエディタ(以下エディタと略します)として何をお使いでしょうか?
私の場合は仕事柄、プログラミングやサーバーといった世界とは無縁な方とのお付き合いもよくある関係で、WindowsではEmEditorというエディタを10年以上愛用しています。
- EclipseやNetBeans等のIDEに比べ動作が非常に軽快
- 外部ツールと簡単に連携できる
という特徴があるため、スクリプト言語のメリットである、「サクッと書いてサクっと実行」を最大限に活かす手段としても活用しています。
EmEditorとは
-
https://jp.emeditor.com/
- 4,800円~の有料ソフトです。1
日本の有名なWindows用エディタでは、以下のようなソフトウェアに近いです。
- 秀丸エディタ
- サクラエディタ
- TeraPad
特に気に入っているのは、以下のようなケースでの利用です。
- スクリプト言語をすぐに実行できる(今回の本題)
- 例:今行われている業務手順がいかに非効率かをその場ですぐに実証してみせる。
- 超巨大なファイルでも開ける
- 例:サーバー知識のあまりない人から受け取ったG(ギガ)単位のログをすぐに開く。
- 強力なCSVモード
- 例:事務仕事をしている人から受け取ったエクセルのデータをその場ですぐに解析する。
設定方法
1.スクリプト言語のインストールパスを確認
使用するスクリプト言語のインストールパスを確認してください。※環境によって異なりますので、以下はあくまでも一例です。
C:\php\php.exe
C:\ruby\bin\ruby
C:\perl\bin\perl.exe
Windowsの環境変数「PATH」を設定している方であれば、その値を使用してもOKです。(この文章の意味が分からない人は、とりあえず気にしなくてもOKです。)
2.EmEditorで外部ツールの設定
- ツール ⇒ 外部ツール ⇒ 外部ツールの設定...
- 外部ツールウインドウが開くので【新規作成】ボタンを押す
- 以下のスクリーンショットを参考にしてください。(PHPの場合の例です)
- タイトル:自分が分かれば何でもOK
- コマンド:
C:\php\php.exe
- 手順1で調べたパスです。
- 手順1で調べたパスです。
- 引数:
"$(Path)"
- 2のコマンドへ、開いているファイルのパスを渡すという意味です。
- 2のコマンドへ、開いているファイルのパスを渡すという意味です。
- 初期ディレクトリ:
$(Dir)
- 2のコマンドを、開いているファイルのあるディレクトリで実行するという意味です。
- 2のコマンドを、開いているファイルのあるディレクトリで実行するという意味です。
- アイコンパス:任意(未入力でもOK)
- 画像リソースを持つファイルへのパスを入力すると、アイコンを付ける事ができます。
- 上記の例では、php.exeが保有しているリソースを使用しています。
- ファイルを保存する:チェック
- 実行時に自動でファイルを保存します。便利なのでONにすると良いです。
- 実行時に自動でファイルを保存します。便利なのでONにすると良いです。
- アウトプットバーを使用する:チェック
- 出力結果が自動分割されたウインドウ(アウトプットバー)内へ表示されるようになります。とても便利なのでONにすると良いです。
- 出力結果が自動分割されたウインドウ(アウトプットバー)内へ表示されるようになります。とても便利なのでONにすると良いです。
- アウトプットバーにフォーカスを設定する:任意
- チェックすると、7の出力結果表示時にフォーカスがアウトプットバーへ移ります。
- 私は出力結果をすぐにコピーする事が多いので、ONにしています。
- 終了時に閉じる:チェックしない
- チェックすると、実行後にアウトプットバーが閉じるようになりますが、あまりそういう使い方はしないと思います。
- チェックすると、実行後にアウトプットバーが閉じるようになりますが、あまりそういう使い方はしないと思います。
- エンコード:アクティブな文章と同じ
- 出力結果の文字コードを指定します。この設定にしておくと、自動でファイルと同じ文字コードで出力するようになります。
- 異なる文字コードで出力したい場合は、設定を変更してください。
- 標準エラー:任意
- 標準エラーの出力先です。
- 私は「ツールチップとして表示」するようにしていますが、不要であれば「破棄」でもOKです。
3.キーボードショートカットを設定
このままでも使えるのですが、メニューやツールバーから呼び出すのは面倒なので、任意のショートカットキーを割り当てておくと便利です。
- ツール ⇒ 現在の設定のプロパティ
- プロパティウインドウが開くので、左メニューから「キーボード」を選択
- 以下のスクリーンショットを参考にしてください。
割り当てるキーは何でもOKです。※全てのショートカットキーをカスタマイズできます。
4.実際に使ってみる
C:\php\sample.php
というファイルを作成して実行してみます。
手順3で設定したショートカットキーを押すだけで、自動でファイルが保存され、アウトプットバーにファイルと同じ文字コード(今回はUTF-8)で出力結果が表示されます。
アウトプットバーに出力された結果は、Windowsコマンドプロンプトで…
> C:\php\php.exe "C:\php\sample.php"
…と入力した結果をUTF-8で出力したものと同じ という事になります。
5.コマンドラインオプションを使いこなしてみる
これらを使いこなすと、構文チェック等もできるようになります。
例えば、PHPファイルの構文チェックを行いたい場合、手順2の設定で…
- 引数:
"$(Path)"
⇒-l "$(Path)"
…のようにすると、ショートカットキーを押すだけで構文チェックができるようになります。上記の例は、Windowsコマンドプロンプトで…
> C:\php\php.exe -l "C:\php\sample.php"
…と入力した結果と同じという事になり、アウトプットバーに下記が出力されます。
No syntax errors detected in C:\php\sample.php
実用例
結果さえ取得できれば書き方はどうでも良い時
チラシの裏へ殴り書きをするような感覚で書いて、即実行して結果を得ます。
- 例:素敵なHTMLかつShift_JISで書かれたauのページからIPアドレスのリストを作りたい
$html = file_get_contents('https://www.au.com/ezfactory/tec/spec/ezsava_ip.html');
$regex = '/\<div class\="TableText"\>.*?(\d{1,3}(?:\.\d{1,3}){3}).*?\<\/div\>.+?\<div class\="TableText"\>.*?(\/\d{2}).*?\<\/div\>/s';
preg_match_all($regex, $html, $match, PREG_SET_ORDER);
foreach ($match as $m) { echo $m[1], $m[2], "\n"; }
- 殴り書きの例です。絶対にコピペで使わないでください。
-
正規表現もマネをしないでください。
- HTMLの一部をコピペしてpreg_quote()に通し、機械的に生成しただけのものです。
- スクレイピングは、専用のライブラリを使用する or DOM操作するようにしましょう。
このような殴り書き専用のファイルを用意しておき、ランチャー等で呼び出しすぐに殴り書きできるようにしておくと、便利だと思います。
Qiitaに掲載する短いコード
初心者向けに書いた短いコードは、IDEを使用する必要性がないので、全てEmEditorで書いています。
- マルチバイト(全角スペース等)対応のtrim処理内の簡単なコード
- エクセル方言のcsv(SJIS)を配列にする内の簡単なコード
-
PHPのソースコードの難読化・暗号化内の復号処理
- PHPのパーサトークンの一覧からトークンをリスト化したものを、スクレイピングでサクっと取ってきたりもしています。
このように、短いコードをサクっと実行してサクっと結果を見たい時は、IDEを起動するよりも素早く目的を果たせる事も多いと思います。
その他のアプリケーションとの連携
今回はスクリプト言語との連携方法を説明していますが、コマンドラインインターフェイスを提供しているアプリケーションであれば、同じ手順で連携が可能です。
例えば、FFmpeg を利用した動画ファイル変換を、ショートカットキーやツールバーのボタン一発で済ませてしまう…といった事もできるようになります。他にも様々な活用方法がありますので、是非使いこなしてみてください。
-
私は永久ライセンスユーザーですが、永久ライセンスは4,000円前後で取得したような記憶があります。現在はかなり高額になっていて驚きました。 ↩