追加読書

追加読書

何を探すべきかわかりません。 「ターミナルラインオーバーラップ」は通常、ポストの所望の動作をもたらす。

Dietpiを実行しているRaspberry PiにSSHで接続して、経験した内容を紹介します。jq -hこれは単なる例です。

dietpi@tv22-rpi1:~$ jq -h
jq - commandline JSON processor [version 1.5-1-a5b5cbe]
Usage: jq [options] <jq filter> [file...]
jq - commandline JSON processor [version 1.5-1-a5b5cbe]
Usage: jq [options] <jq filter> [file...]inputs, applying the
        given filter to its JSON text inputs and producing the
        jq is a tool for processing JSON inputs, applying the
        given filter to its JSON text inputs and producing the,
        filter's results as JSON on standard output.(except for
        The simplest filter is ., which is the identity filter,
        copying jq's input to its output unmodified (except forq")
        formatting).://stedolan.github.io/jq
        For more advanced filters see the jq(1) manpage ("man jq")
        and/or https://stedolan.github.io/jq
         -c             compact instead of pretty-printed output;
jq - comSome of the options include:sion 1.5-1-a5b5cbe]value;
Usage: j -coptions] <jq compact instead of pretty-printed output;put;
         -n             use `null` as the single input value; output;filter to it;
         -eis a tool forset the exit status code based on the output;filter to it;
         -sen filter to read (slurp) all inputs into an array; apply filter to it;
         -rter's resultsoutput raw strings, not JSON texts;
         -R simplest filread raw strings, not JSON texts;ilter,
         -Cying jq's inpcolorize JSON;n't colorize JSON);pt for
         -Mmatting).tabsmonochrome (don't colorize JSON);
         -Stabreuse tabssort keys of objects on output; ("man jq")
         --tab ause tabs for indentation;o value <v>; <v>;
         --arg a v a v fset variable $a to value <v>; <v>;y of JSON texts read from <f>;
         --argjson a v fset variable $a to JSON value <v>;y of JSON texts read from <f>;
dietpi@t --slurpfile a ffor moreset variable $a to an array of JSON texts read from <f>;
dietpi@tSee the manpage for more options.
dietpi@tv22-rpi1:~$ 

古い回線は必要に応じてクリーンアップまたはアップグレードされません。代わりに、新しい行が前の行と交差して読み取れない「スープ」を作成します。

Dietpiのtmuxが原因かどうか疑問に思います。クイックチェックをしましたが、tmuxなしでは動作を再現できませんでした。

dietpi@tv22-rpi1:~$ tmux -V
tmux 2.8

他の多くの投稿がこれらの設定に焦点を当てているので、含めました。私が見るには大丈夫に見えます。

dietpi@tv22-rpi1:~$ shopt | grep checkwinsize
checkwinsize    on
dietpi@tv22-rpi1:~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$

コメントで提案したように、TERM変数を明確にしてください。

  1. 最も外側のTERM = xterm-256color(Linuxラップトップ用のGNOMEターミナル3.18.3、Windowsのパテも同様に動作します)
  2. TERM=ローカルtmuxの画面
  3. TERM=sshで接続した後の画面
  4. TERM = sshによるtmux内の画面

答え1

tmuxディスプレイは、レンダリングされる端末にこの端末が理解できない方法で(再び)描画されます。 tmux上にスクロールしてから(レンダリングされた)端末ディスプレイを再描画するように端末制御シーケンスを実行します。これは、使用している実際の端末と一致しません。tmux端末に表示される種類について嘘をついたためです。

TERM=xterm-256color(LinuxノートブックGNOMEターミナル3.18.3 [...]パテ[...]

これは間違っています。

  • GNOMEターミナルとVTEウィジェットライブラリ(GNOMEターミネーターを含む)を使用する他のターミナルエミュレータの正しいターミナルタイプは次のとおりです。vteまたはvte-256color
  • PuTTYとそれに基づくプログラム(KiTTYと(無効な名前の)MobaXTermなど)の正しい端末タイプは次のとおりです。puttyputty-256colorまたはputty-sco
  • Kovid Goyalの猫(PuTTY派生KiTTYと混同しないでください)の正しい端末タイプは次のとおりです。kittyまたはkitty-direct。 (Kitty自体は、長い間確立されたterminfo命名規則に従わなかった非常に誤解を招く""という名前の異なるxterm-kittyterminfoレコードを提供します。kittykitty-direct
  • MacOS iTermの正しい端末タイプは次のとおりです。iTerm.AppGeorge NachmanのiTerm2の場合iTerm2.App
  • MacOS端末の正しい端末タイプは次のとおりです。nstermまたはnsterm-256color, "ns" は NeXTSTEP 端末に継承されたことを示します。
  • ターミネーターの正しい端末タイプ(GNOME端末タイプではなくJava端末タイプ)は次のとおりです。terminator
  • Linux、OpenBSD、NetBSD、およびFreeBSDカーネル自体に組み込まれている端末エミュレータの正しい端末タイプは次のとおりです。linuxlinux-16colorpcconpcvt25teken。 (私のnoshツールセットはteken-256colour意図的にFreeBSDカーネルのターミナルエミュレータと同じように動作しますが、インデックスとダイレクトカラー機能を追加するターミナルエミュレータが付属しているので、追加のtermcapレコードを提供します。)

レンダリングされた端末を正しく説明するために、TERM継承された環境変数は次のとおりです。tmux

正しい端末タイプ現在の(内部)ターミナルは、TERMI / Oにこれらのターミナルを使用するプロセスによって継承された環境変数にあります。tmuxtmux-256colortmux-direct、脱出できますが、screen

これは広く普及しています間違ったターミナルエミュレータはすべてXTermと互換性があり、terminfoデータベースのエントリとそのエントリがxterm正しく説明していると想定しています。 Thomas DickeyのXTerm FAQはこれらの誤解を指摘しており、その項目が他の端末エミュレータだけでなくXTerm自体のすべてのバージョンを説明しているわけではないことxterm-256colorは注目に値します。xtermxterm-256color

TERM環境変数をに設定するxterm必要がある唯一のケースはxterm-256colorxterm-何もない「端末エミュレータが実際にXTermプログラムの場合。

たとえば、画面全体の TUI プログラムに、間違ったtmux端末タイプが、画面の一部が更新されないことから、間違った場所にコンテンツを描画し、誤った背景色を持つこと、ボックスのアルファベット文字を描くことまで、さまざまな影響を与える可能性があることを伝えます。 。

追加読書

関連情報