Igor Proにシェルを導入して作業効率を大幅にアップする
はじめに
Igor Pro上で動くシェルのようなコントロールパネルを作成しました.名前はシンプルにCommandPanelです.
背景
Igor Proはマウスを用いたグラフィカルユーザーインターフェース(GUI)と,コマンド入力によるキャラクターユーザーインターフェース(CUI)の両方を備えた強力なグラフ作成ソフトです.
マウスによる直感的な操作が可能な一方で,シンプルな内部プログラミング言語*1とCUIの組み合わせにより,定型処理の自動化を容易に行うことができます.
しかしながら,Igor Proの標準のコマンドラインインターフェースはそれほど便利なものではありません.
具体的な不満点としては次のようなものがあります.
- Duplicate, AppendToGraphのような長いコマンドを入力するための入力補助機能(短い別名の設定や入力補完)がない.
- せっかくコマンドの実行履歴を記録しているのに,それを検索する機能が乏しい.
- GUI操作の結果もコマンド履歴と同じウィンドウに書き出されるため,コマンド履歴が混沌としやすい.
- まとめて何かを実行したい場合は.関数を書く必要がある.(V_で始まる名前の変数を一括削除せよ,といった指示はコマンドラインからは出せない.)
Igor ProのGUIは非常に洗練されたものであるだけに,コマンドウィンドウの機能が申し訳ばかりのものであるのは非常に残念です.
解決
CUIでパソコンを操作するための,シェルと呼ばれるソフトがあります.
Windowsでは普段意識することはありませんが,他のOSではbashと呼ばれるシェルがもっともポピュラーなものです. コマンドに短い別名をつけたり,コマンドの入力補完を行ったり,コマンドの実行履歴の検索ができたり,コマンドを展開して複数の処理を一気に行ったり...といった機能により快適なCUI操作を実現しています.
Igor Proでもbashのようなシェルが使えればきっと便利だろう...と思ったので,Igor Pro上にそれっぽいものを作りました.
使い方
上記のサイトからCommandPanel.ipfをダウンロードして,Igor Proに読み込んでください.
(Igor ProceduresフォルダにダウンロードしてIgor Proを再起動するか,User ProceduresフォルダにダウンロードしてIgor上のプロシージャウィンドウに#include "CommandPanel"
と書いてください.)
詳しい使い方は日本語のWiki に記載しているのでそちらをご覧ください.
ここでは,詳しい説明のかわりにCommandPanelを使った便利な操作の例をいくつか紹介します.
コマンドやパス名を補完する
コマンドやパス名を展開する
コマンド履歴をキーワードで絞り込む
おわりに
Igor Proにシェルのようなものを作りたい,というアイデアは以前からあって*2試行錯誤の末このような形にまとまりました. 現在では,これなしのIgorには戻れない,というレベルで依存しまくっています.
ただしこのプロシージャ,Igor Pro7では動きません.これが原因で,Igor Pro6からIgor Pro7に移行できずにいたりするのですが...