🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Q&A

解決済

1回答

4109閲覧

TeraTarmマクロにおけるエスケープシーケンスの利用

Ytaka

総合スコア35

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

0グッド

0クリップ

投稿2021/03/15 12:22

TeraTermのマクロを利用して、運用自動化を図りたいと考えています。
マクロを使って、カーソル位置の取得を行いたいのですが、マクロ内で
各種エスケープシーケンスを送信、することは可能でしょうか。
こちらの対応制御シーケンス一覧を見ると、カーソル位置の取得なども
可能のように見えますが、エスケープシーケンスの利用方法が分かりません。
sendコマンド、もしくはsendkcodeで試しましたがこちらもうまく動きませんでした。
そもそも、マクロでエスケープシーケンスを自由に送受信できるものでしょうか。

やりたいこと
マクロ実行中にエスケープシーケンスを利用して、カーソル位置を取得する。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Q. マクロ内で各種エスケープシーケンスを利用することは可能か
A. 可能
ただし、送受信できることと、受信した情報を解析できることは、別。

Q. エスケープシーケンスでカーソル位置を取得することは可能か
A. Tera Term に、応答コードを解析する方法がない。
(wait を試してみたが、取得できない)

ということで、エスケープシーケンスを利用する方法について、簡単なサンプルマクロを作ってみました。

; Sample.ttl (Tera Term language) ; vi でインサートモードからサンプル行を3行送り、カーソルを1行上に移動するマクロ。 ; vi でインサートモードからサンプル行を3行送る。 ; 改行は ASCII コード表より(10進数 = 10, 16進数 = $0A)を利用。 ; 利用方法を示すサンプルなのでごちゃ混ぜにしているが、どちらか片方に統一した方が分かりやすい。 sendln 'vi test.txt' send 'i' send 'test input - line 1'#10'test input - line 2'$0A'test input - line 3' ; vi で esc を送ってコマンドモードにする ; (ASCII コード表より esc は 10進数 = 27, 16進数 = $1B) ;send #27 send $1B ; コマンドモードにしたあと、すぐに CSI シーケンスを送っても反応しないので、少し待つ ; 詳細は Tera Term ヘルプ(vim からの制御シーケンスの使用例)を参照のこと。 pause 1 ;【C0 制御文字】 ; 0x9b, ESC [ CSI, CSIシーケンスを開始 ;【CSIシーケンス】 ; CSI Ps A, CUU, カーソルを Ps 行上に移動する。Ps の省略時の値は 1。 ; CSIシーケンスの ESC は制御文字でなければならないが、指定内容は文字列にする。 send $1B'[1A'

端末の状態を報告する DSR は CSI Ps n なので
send $1B'[6n'
で送れますが、その応答コード (CPR) を解析する方法はちょっと分かりません。

投稿2021/04/23 21:40

jimba

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ytaka

2021/04/26 12:29

ご回答ありがとうございます!回答がつくとはw さっそく、いただきました情報をテストしてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問