開発者のみなさん、あけましておめでとうございます🎍 今年もどうぞよろしくお願いします!
さて、この記事では、IRIS ターミナルに(こっそり)追加された便利機能をご紹介します!(つい最近知りまして、びっくりしました)
2023/4/13 追記:Pythonシェルへ切り替えるメソッドのショートカットが追加されていたので返信欄に追記しました。
IRIS ターミナルで以前実行したコマンドを再実行する場合、上矢印キーを連打しながらコマンドを探されていると思うのですが、IRIS 2021.1 から履歴表示と、履歴番号を指定した実行ができるようになっていました!
では早速、履歴(history)の使い方をご紹介します。これがあれば、もう、上矢印キーを連打せずに以前実行したコマンドを再実行できます!!
まずは、履歴を作るため、いくつかコマンドを実行します。
ユーザ名:_system
パスワード:***
USER>
USER>write $ZDATE($NOW(),16)
2022年1月6日
USER>
USER>write $ZV
IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT
USER>
USER>write $system.Util.ManagerDirectory()
c:\intersystems\irishealth\mgr\
USER>
ここで、:? と入力してみます。
(なんと、オプションが表示されます!!)
USER>:?
:<number> Recall command # <number>
:? Display help
:alias Create/display aliases
:clear Clear history buffer
:history Display command history
:unalias Remove aliases
:history (または :h)を実行すると、履歴が表示されます!
USER>:history
1: _system
2: write $ZDATE($NOW(),16)
3: write $ZV
4: write $system.Util.ManagerDirectory()
5: :?
6: :history
コロン(:)と履歴番号を指定し、以前実行したコマンドを再実行してみます。(:4 と入力しています。)
USER>:4
write $system.Util.ManagerDirectory()
c:\intersystems\irishealth\mgr\
USER>
上矢印キーを連打せずに、過去のコマンドを実行できました!便利です
続いて、alias オプションを使うとコマンドのショートカットが作成できるようですので、それも試してみます。
以下の実行例では、TESTネームスペースに移動した後、IRIS ターミナルをSQL実行モードに変更し、SQLを実行しています。
USER>set $namespace="test"
TEST>do $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
[SQL]TEST>>select * from Training.Person
1. select * from Training.Person
ID Email Name
1 yamada@majorcorp.com 山田たろう
1 Rows(s) Affected
statement prepare time(s)/globals/cmds/disk: 0.0462s/3307/171368/2ms
execute time(s)/globals/cmds/disk: 0.0002s/2/675/0ms
cached query class: %sqlcq.TEST.cls166
---------------------------------------------------------------------------
[SQL]TEST>>quit
TEST>
なかなか覚えにくいコマンドに対して、alias を設定しておくと便利そうですので、ターミナルを SQL の実行環境に変更する do $system.SQL.Shell() を設定してみます。
設定方法は以下の通りです。
:alias 名称 コマンド
$system.SQL.Shell() を sqlmode の名称で alias に設定する例は以下の通りです。
TEST>:alias sqlmode do $system.SQL.Shell()
TEST>:alias
sqlmode do $system.SQL.Shell()
早速、設定した alias を使ってみましょう!
TEST>:sqlmode
do $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
[SQL]TEST>>quit
TEST>
無事、実行できました!
(alias 名は省略できるので、上記登録の場合 :s でも実行できるようでした。)
メモ:2021.2プレビュー版では、do $system.SQL.Shell() が alias 名 sql で事前に登録されているため、:sql で SQL 実行モードに切り替えできました。
履歴(history)や alias の例については、ドキュメントにも記載がありますので、併せてご参照ください!
いつの間にか、:py も追加されていました。(Pythonシェルへ切り替わります。)
USER>:py Python 3.9.5 (default, Jan 13 2023, 15:20:22) [MSC v.1927 64 bit (AMD64)] on win32 Type quit() or Ctrl-D to exit this shell. >>> import datetime >>> datetime.datetime.now() datetime.datetime(2023, 4, 13, 11, 16, 43, 487481) >>>
もちろん、以下メソッドの実行でも切り替わります。
do ##class(%SYS.Python).Shell()