たとえば、私の問題を説明できます。コマンドの例を見てみましょう
man
。ターミナルでこのコマンドを実行すると、新しいウィンドウでページが開き、ターミナルの問題で以前に行った操作を表示できません。どうすればいいですか?
私は端末アプリケーションに取り組んでいますが、同様の方法で動作したいと思います。アプリケーション名を入力すると、新しいページが開きます。
編集:Vimの例、vim
端末に入力している間にvimを開くと、そのインターフェースが画面に表示されます。私が作っているアプリでどうすればこれを行うことができますか?
答え1
あなたが要求するものを代替画面バッファと呼び、アプリケーションはESCコードを端末に送信して代替画面に切り替えるか、代替画面から切り替えます。
アプリケーションがncursesライブラリを使用している場合は、これを行う関数があります。シェルスクリプトでこれを行うには、tput
適切なコードを送信するだけです。
tput smcup # switch to alt screen
tput rmcup # switch back from alt screen
注:すべてではありませんが、ほとんどの端末エミュレータはこの機能をサポートしています。そうでない人(または一部の端末エミュレータのオプションである無効になっている人)は単にコードを無視します。