問題タブ [terminal-emulator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Linux ターミナル エミュレータの作成
x11 ターミナル エミュレーターを作成したいのですが、どのようにシェルを生成して通信するべきかわかりません。そのための基本的な (疑似または C) コードはありますか? どのような種類の PTY を作成するか、シェルをそれにバインドする方法、キャッチまたは送信する必要があるシグナルなど、xterm ソース全体を並べ替えるような気がしません。
編集: ああ、その中のアプリケーションと通信する方法を実装したいのですが、機能の検出はどのようにすればよいですか? 「クライアント」に隠された ansi シーケンスがあり、他の端末エミュレータと衝突しないことを願っていますか? 「クライアント」と衝突したり、シェルによって削除されたりしないことを願って、いくつかの環境変数?
java - 端末エミュレーションで矢印キーが機能しませんか vai ssh
自分のマシンで ssh を実行しているときに、ターミナル エミュレーターのコマンド履歴に Ctrl+P を使用できます。矢印キーも機能させることが可能かどうか知りたかったのです。コマンドssh user@hostではなく、プログラムを使用して ssh を実行しています
私がこれを尋ねているのは、バイト配列から個々の文字を抽出する前に、それを印刷しているためです。文字を押すと、バイト配列に多くの数字が表示されますが、矢印キーを押しても何も出力されません。Ctrl+P が機能するようにするには、矢印キーを作成する必要があります。
SHELL 値は /bin/bash であることに注意してください。また、私は TERM 変数のこれらの値を実験しました: ダム、vt100、xterm、linux .安全なログインのために、私は Ganymed SSH ライブラリを使用しています。
更新:(トリプルからの提案付き)
キーボード処理ロジックの小さなスニペットは次のとおりです。
入力は次のようになります。
キー リスナー コードは次のとおりです。
ありがとう。
serial-port - シリアル インターフェイス経由のターミナル モードのエディタ: 表示不良
シリアル ポート経由で通信するWandboardターゲットがあります。minicom でログインしてコマンドを送信できます。端末は正常に見えます。
ただし、ターミナル内でより高度なエディター (nano、vi、emacs) を使用しようとすると、行がすべてめちゃくちゃになります。たとえば、emacs では、開始直後はコンテンツに問題はありませんが、カーソルを動かし始めると、行番号が間違った場所に表示されます。ファイルを開こうとすると、バッファの中央にプロンプトが表示されます。
minicom のいくつかの設定を変更する必要があると思いますが、どれが見つからないだけです。
serial-port - Java ベースの 8 ビット・コンピューター・エミュレーター用の VT100 端末エミュレーション
GNU Screen をシリアル ターミナルとして使用し、シリアル ラインを使用して Altair 8800 クローン ( http://altairclone.com/ )と "通信" することに成功しています。私が使用するコマンドは「screen -itrip /dev/ttyUSB0」です。画面は VT100 エミュレーションを行い、出力から MSB を取り除きます。完璧に動作します。
現在、私はJavaでAltair 8800のエミュレーターにも取り組んでおり、シリアルデバイスの背後にある実際のマシンのように、ターミナルエミュレーターを使用して接続して通信したいと考えています。Linux の世界で解決する最善の方法は何ですか? そのためにスクリーンを使用する方法はありますか?解決策は些細なことだと何かが教えてくれますが、私はまだそれを知りません;)提案をありがとう。
emacs - 端末エミュレーターでの Emacs キーバインディングの変更
ターミナル エミュレータでいくつかの Emacs キー バインドが変更されていることに気付きました ( xfce4-terminal
)。
例: M-SPCunder TTY はマークを設定しますが、TTY ではxfce4-terminal
何もしません。
また:
- C--TTYにあり
undo
、ターミナルエミュレーターでは何もしません - C-/
undo
TTYおよびターミナルエミュレータで後方に文字を消去します
2 つのルールを学習する負担を回避する解決策はありますか? TTYコンソールでいつものようにそれらが欲しいだけです。
emacs - タームモードの領域で行の折り返しを尊重する方法はありますか?
term
モード導関数 (ansi-term
や など)を使用する場合multi-term
、領域を選択して別の場所にコピーしたいことがよくあります。その領域に端末ウィンドウの端で折り返される行が含まれている場合、その領域を別のバッファに貼り付けるとterm
、行が折り返された場所に常にハード改行が挿入されます。これは、貼り付けたテキストを元に戻してクリーンアップする必要があることを意味します。これを回避する方法はありますか?term-line-mode
私は両方を試しましたterm-char-mode
; どちらも同じことをします。
元のコンテンツに既存のハード改行を保持したいので、すべての改行を取り除くヤンクフックを書きたくありません。
c++ - Windows用のターミナルエミュレータを実装するには?
これは、Linux(およびおそらく他のUNIX)で端末プログラムを生成して通信するためのCボイラープレートのビットです。
fork()
Windowsにはまたはがないことを理解していますopenpty()
ので、私の質問は次のとおりです。Windowsで同様のことを実現するにはどうすればよいですか?
可能であれば、次のことを実行するために必要な最低限の C/C++ コードを確認したいと思います。
- を使用して cmd.exe の対話型セッションを生成します
CreateProcess
- インタラクティブなコンソール セッションをシミュレートする方法で、生成されたプロセスとの間でデータを読み書きするために使用できる一連のハンドル/ファイル記述子を取得します。
linux - Web 経由の linux または windows ターミナル
Linuxターミナルの前にいるかのように、コマンドを実行して応答を取得できるように、WebページにLinuxターミナルを表示できるWebアプリを作成する予定です。NodeJS はサーバー側の JavaScript であり、非同期で高速であるため、使用する予定でした。
また、これがまさに私がやろうとしていることを実行しているのを見まし た。ソースコードをのぞき見しましたが、役立つものは見つかりませんでした。また、ネットワークタブのGoogle Chrome開発者ツールで分析しましたが、まったく何もありませんいくつかのコマンドを実行して応答を取得している間。これはどのように可能ですか?彼らはどんな技術を使ったと思いますか?
ですから、正しい方法で始めるために、あなたのアドバイスや経験を聞きたかったのです。最初は NodeJS を使用することにしましたが、この種のアプリケーションに適した別のプログラミング言語またはフレームワークがあれば教えてください。