問題タブ [terminfo]
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.
scripting - script(1) ツールの出力をきれいにするツールはありますか?
script(1)
対話型端末セッションの記録を保持するためのツールです。デフォルトでは、ファイルに書き込みますtranscript
。私の問題は、ksh93
readline 機能を備えた を使用しているため、トランスクリプトがあらゆる種類の端末エスケープ シーケンスでごちゃごちゃになってしまい、実際に実行されたコマンドを再構築することが非常に困難になる可能性があることです。迷子などは言うまでもありません^M
。
script
によって書かれたトランスクリプトファイルを読み取り、すべてのジャンクを削除し、シェルが実行していると考えていたものを再構築するツールを探しているので、表示されるものと$PS1
実際に実行されたコマンドがあります。それができない場合は、そのようなツールを作成する方法についての提案を探しています。理想的には、terminfo データベースの知識を使用するか、そうでない場合は ANSI エスケープ シーケンスを使用するだけです。
本当に機能する限り、シェルの履歴を参照するチートも許容されます。
unix - 端末がカラー対応かどうかを確認するにはどうすればよいですか?
端末がカラー対応かどうかを自動的に検出するようにプログラムを変更したいので、カラー対応でない端末(たとえば(X)EmacsのMxシェル)内からプログラムを実行すると、カラーが自動的にオフになります。
TERM = {emacs、dumb}を検出するようにプログラムをハードコーディングしたくありません。
termcap / terminfoがこれを助けることができるはずだと思っていますが、これまでのところ、この(n)cursesをまとめることができました-コードのスニペットを使用して、ターミナルが見つからない場合はひどく失敗します:
つまり、私はこれを取得します:
これは...次善です。
c - setuptermがプログラムを終了するのはなぜですか?
これは「BeginningLinuxProgramming」の本のサンプルプログラムです。
それを実行すると、次の結果が得られます。
setupterm関数の定義によると、「terminfoデータベースに一致するエントリがありません」という0を返す必要があります。これの代わりに、プログラムは終了します。なんで?
terminal - Ncurses で倍角文字を印刷する
多くの端末エミュレーター (xterm、Konsole) は、倍角文字をサポートしています。Ncurses はこれをサポートしておらず、私の知る限り、ncurses はエスケープ文字を出力しません (\033 はエスケープされず、平文で出力されます)。
ncurses アプリケーションで 2 倍の大きさの文字を印刷することはまったく可能ですか?
perl - この tty のタブのスペース数
tty である stdout に書き込む perl スクリプトがあります。そのttyのタブにいくつのスペースがあるかを判断する方法はありますか?
ruby - Ruby から端末位置を取得する
これを行うためのより良い方法が絶対に必要です。
基本的に、サブプロセスでこの質問のbashスクリプトを実行し、リダイレクトされたファイルから出力を読み取ります。
Cや宝石を使わずに(stdlibは大丈夫です)、これを行うより良い方法は何ですか? 相互互換性はそれほど重要ではありません。
search - ソースからncursesを構築するときにterminfoデータベースのカスタム検索パスを設定する方法
ソースからncursesを構築するときに、terminfoデータベースのカスタム検索パスを設定するにはどうすればよいですか?
具体的には、「〜/.terminfo」でプライマリディレクトリを強制的に検索するにはどうすればよいですか?
emacs - terminfo エントリ (Emacs の eterm-color) をインストールするには?
Emacs の term-mode バッファー内から GNU Screen を実行したいと考えています。これを行おうとすると、エラーが発生します。
このエラーは、eterm-color terminfo エントリをインストールする必要があることを示唆しています。私はこれを 2 つの方法で実行しようとしましたが、両方とも失敗しました。
最初の試みは、TERMINFO 環境変数を使用することでした。
私の.bashrc:
それから私はしました:
term-mode バッファーで、eterm-color エントリーが見つかりません。実際のファイルからではなく、TERMCAP から eterm-color を取得すると書かれています。
2 番目の試みは、シンボリック リンクを使用することでした。
これは最初の試行と同じ方法で失敗しました。
どちらの試みもうまくいかなかったのはなぜですか? eterm-color terminfo エントリをインストールするにはどうすればよいですか?
OS X 10.6.8 と Emacs 23.3.1 を実行しています。
tmux - tmuxのmanページ検索の強調表示
たとえば、セッションman ls
中tmux
に検索すると、検索文字列が強調表示されません。ページが下にジャンプして、検索文字列が期待どおりにバッファの一番上の行に表示されますが、強調表示されません。
セッション中でないときに同じシェルで同じことを行うと、tmux
検索文字列が強調表示されます。
これを解決するためにどこから始めればよいのかわかりません。ヒントは大歓迎です。
linux - bash スクリプトで「代替画面」を使用する
代替画面は、vim、htop、screen、alsamixer、less などの多くの「ユーザー対話型」ターミナル アプリケーションで使用されます。アプリケーションが終了すると消える、ターミナル コンテンツの別のバッファのようなものです。復元され、アプリケーションが何も出力していないように見えます。
私自身のシェル (bash) スクリプトでまったく同じことを実現したいと考えていますが、移植性がそれほど高くなくてもかまいません。私は Linux のみと xterm ベースのターミナル エミュレーターに固執します。しかし、解決策はtput
可能であれば次のようなものを使用する必要があります。ただし、外部のスクリプト言語 (または C など) は使用したくありません。
私は C を使用したくありませんが (可能な限り依存関係の少ない bash スクリプトにする必要があるため)、less のソース コードを調べました。terminfo をデータベースとして使用しているようで、初期化時に「ti」端末機能を検索します。行を削除すると、代替画面が使用されないため、責任のあるコード行が見つかったと想定しました。
しかし、私はそのような機能を見つけることができませんman terminfo
. しかし、おそらく私はこれに対する解決策を見つけるのに間違った道を進んでいます。たぶん、terminfo / tput は私の友達ではありません。
では、(どのように) bash スクリプトで代替画面を使用できますか? ソースコードにヒントがある簡単なアプリケーションを知っている人はいますか? (C アプリケーションや bash スクリプトなど...)