質問

MacのScreenのマニュアルにある次のステートメントに従って、自動マージンをオフにする必要があります

  

端末が" true"の場合   自動マージン端末(許可しません   画面の最後の位置          画面をスクロールせずに更新される)バージョンの使用を検討する   端末のtermcapの          自動マージンがオフになっています。

端末のtermcapで自動マージンをオフにするにはどうすればよいですか

役に立ちましたか?

解決

XTermコントロールシーケンスによると、このシーケンスは要求されたとおりに実行する必要があります。

CSI ? 7 l

つまり、

printf '\033[?7l'

7 は次のように文書化されています

        Ps = 7  -> Wraparound Mode (DECAWM).

および最後の文字 l (小文字のL)は、これを set コントロールではなく reset として示します。

何らかの理由で、これのterminfo名はより不明瞭です:" automatic margins"。これらのterminfo機能は機能を処理します( terminfo(5)を参照)。

   auto_right_margin             am         am        terminal has auto‐
                                                      matic margins
   enter_am_mode                 smam       SA        turn on automatic
                                                      margins
   exit_am_mode                  rmam       RA        turn off automatic
                                                      margins

興味深いことに、ncursesの vt100-nam 端末の説明(明らかに誰も使用していない)端末を初期化して、使用この文字列を使用してマージンを自動マージンします:

rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 

\ E [?7h で設定)、および端末が am をキャンセルすることで自動マージンを使用しないことをアサートします。また、terminfo機能 rmam および smam も備えています。そのため、これを実行して、機能することを証明できます。

tput rmam
stty columns 999
ps -efwwwwwl

および(通常のユーザーの場合)端末ウィンドウの右マージンに対してうまく切り捨てられた ps リストを参照してください。

他のバリアントvt220-namおよびvt320-namは正しく表示されます...

ところで、 Mac では、 rmcup などの terminfo の名前を使用します。 termcap RA 。OSXはBSDバリアントではなくncursesのtput(terminfo)を使用するため。

さらに読む:

端末が新しい行に折り返されていない情報を表示するために左/右にパン/スクロールできると想定しているため、オートマージンの抑制について尋ねられることがあります。これを行う端末はまれであり、OSX端末は those の1つではありません。 xtermのサブセットのように動作し、それ自体が一連のDEC端末vt52 / vt100 / vt220 / etcをエミュレートします。 this の質問では、OPは screen マニュアルのこの段落について懸念/混乱しています:

  

端末が「true」の場合自動マージン端末(許可されていません   画面の最後の位置は画面をスクロールせずに更新されます)   自動機能を備えた端末のtermcapのバージョンの使用を検討する   マージンがオフになりました。これにより、正確かつ最適な更新が保証されます   すべての状況で画面。現在、ほとんどの端末には「マジック」があります。   マージン(自動マージンと使用可能な最後の列)。これはVT100です   スタイルタイプで、画面に最適です。あなたが持っているすべてが   " true"自動マージン端末画面はそれを使用するコンテンツですが、   画面の最後の位置に置かれた文字を更新しても、   画面がスクロールするか、キャラクターが   他の方法で安全な位置。この遅延は、   文字挿入機能を備えた端末。

画面の最後の位置は、端末の右下隅を指します。通常の場合、カーソルが右下隅にある場合

他のヒント

Macのデフォルト端末を含むほとんどの端末エミュレータは、「真の自動マージン端末」ではありません。ここで議論されている意味で-彼らは「スマート」を持っていたvt100シリーズ端末をエミュレートします包み込む。 cat を実行し、最後の行の最後まで入力することで確認できます。最後の文字を入力した後、入力するまでカーソルは行の最後に残ります(入力した文字を強調表示します)別のキャラクター。

「真の自動マージン端末」の唯一の結果は、文字を右下隅に表示できないことです(一部のプログラムは、 ich / ich1

あなたが正しく理解していれば、terminfoデータベースを使用して自動折り返し機能をNOに設定しようとしています。もしそうなら、-namフラグを使用してオフにすることができると信じています-vt100-namのようなものがそれを行うべきです。 terminfoのmanページを見て確認することもできます。

これで問題が解決した場合は、マークアップしてください。 (^_^)そうでない場合は...コメントしてください。もう一度確認します。乾杯!

更新:ラップのオンとオフを切り替えるためのショートカットもあります。ショートカットシートをご覧くださいこちら。また、Screenの追加情報は、こちら(ラップを検索)にあります。 settermの使用方法については、こちらも確認できます(セクション17.14の変更端末設定)。設定の変更例については、こちらも確認してください。

また頑張ってください。 (^ _ ^)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top