ターミナルのマクロとセッション

English

ForgeKairos は Tera Term 風のターミナルの道具を足す: 文字列を送り出力を待つマクロ、SSH と Telnet の クイック接続、セッションのログ、ファイル転送。

操作コマンドWindows / LinuxmacOS
マクロを実行terminal: run macroctrl-shift-alt-mcmd-ctrl-alt-m
マクロを編集terminal: edit macros
クイック接続terminal: quick connectctrl-shift-alt-kcmd-ctrl-alt-k

マクロ

マクロは、アクティブなターミナルに対して実行するステップの並び。

ステップ動作
送信ターミナルに文字列を送る。
期待文字を待つ出力に部分文字列か正規表現が現れるまで、タイムアウト付きで待つ。
秒待ち決まった時間待つ。
画面を消去ターミナルを消去する。
繰り返し中のステップを繰り返す。
分岐出力、画面、変数で分岐する。
変数に設定変数に値を入れる。

変数

送る文字列とパターンの中の ${name} を置き換える。定義していない変数は書いたまま残すので、打ち間違いが 見える。${ そのものは $${ と書く。正規表現に入れる値はエスケープする。

変数は次のものから値を得る。

  • 「期待文字を待つ」と「分岐」のステップ (「そのとき」の側) の 取り込む変数名
  • 正規表現の名前付きグループ (?P<name>…)
  • 「変数に設定」のステップ

エディターは、その位置でまだ値の無い ${name} を警告し、正規表現の誤りをその場に出す。エディターの 分岐と変数の使い方 に例付きの説明がある。

分岐

  • 分岐 は、最後の送信以降の出力 (既定)、画面全体、変数のどれかと照合する。値の無い変数は 「それ以外」の側に進む。分岐は待たないので、必要なら前に「期待文字を待つ」を置く。
  • 期待文字を待つ は、マクロを止める代わりに タイムアウト時 の分岐を持てる。
  • 分岐は入れ子にできる。

マクロのエディター

マクロのエディターは中央のペインのタブで開く。開いているマクロをもう一度開くと、そのタブに切り替わる。

  • 各ステップはカード。見出しのクリックで畳む・開く。すべて展開 と すべて折りたたむ はすべてのカード に効く。
  • カードの間の線の + でステップを挿入する。カードの見出しを + へドラッグすると移動する。分岐の中へも 外へも移せる。
  • 分岐は 2 つの側 (「そのとき」と「それ以外」) を列で並べ、タブが狭いときは縦に積む。
  • 上へ・下へ・削除は、各カードの … メニューと右クリックのメニューにある。
  • 畳んだカードに誤りがあるとアイコンを出す。

保存していない変更があるとタブに点を出し、閉じるときに保存するか尋ねる。開いていたマクロのタブは再起動後に 戻る (保存していない変更は戻らない)。マクロのファイルがエディターの外で変わったとき、保存していない変更が 無いタブは追従し、あるタブは上書きの前に尋ねる。

フォルダー

マクロはフォルダーに置く。フォルダーは空でもよく、順序を持ち、別のフォルダーには同じ名前のマクロを置ける。 フォルダーは 新しいフォルダー… で足し、フォルダーの右クリックのメニューで作成・名前の変更・移動・削除を する。空でないフォルダーを消すときは、中のマクロを「未分類」に移すか消すかを選ぶ。フォルダーは入れ子に できない。マクロを実行… のピッカーはフォルダーごとにまとめる (terminal.macro_picker_folders_collapsed ですべてのフォルダーを畳んで開く)。

マクロの保存先

マクロ、フォルダー、クイック接続は設定フォルダーの terminal_sessions.json に保存する (Windows は %APPDATA%\ForgeKairos、macOS と Linux は ~/.config/forgekairos)。書き込みは不可分に行い、ForgeKairos の 動作中にファイルを編集しても読み直す。

クイック接続

クイック接続は、ホスト、ポート、ユーザー、接続後に実行するマクロ (任意)、ログの指定で、SSH か Telnet の セッションを新しいターミナルのタブに開く。Windows の telnet.exe が無いときは、有効にする方法を知らせる。

パスワードは記憶できる (パスワードを記憶する、既定でオフ)。OS の資格情報の保存先 (Windows では資格情報 マネージャー) に置き、JSON のファイルには書かない。SSH には askpass で最初の問い合わせにだけ渡し、Telnet では パスワードの問い合わせを 1 回だけ待つ。

セッションのログ

ターミナルの出力をログのファイルに保存できる (切り替え、開始、停止、ファイルの場所を開く、末尾を追って エディターで開く)。記憶したパスワードを入力する間はログを止める。terminal.session_log の設定は 設定の一覧 を見る。

ファイル転送

ターミナルの右クリックのメニューの ファイル転送… (または terminal: open file transfer) で、SFTP、SCP、 FTP、FTPS の 2 画面のウィンドウを開く。OS の sftp、scp、curl を使う。接続先はアクティブなターミナルから 取る。SSH のリモートのプロジェクトでは、手元の側をリモートのホストにできる。転送はユーザーの操作で、 エージェントからは始められない。