
ターミナルで、su - admin
自分のユーザーアカウントにログインしたままbrew update
、 、 変更.bashrc
などを実行します。
nano
ユーザー セッションで実行中にウィンドウのサイズを変更しても、テキストが乱れることはまったくないことに気づきました。ウィンドウのサイズは完全に変更されます。
ただし、新しいターミナル ウィンドウを開いて を実行し、サイズを変更しようとするsu - admin
とnano
、テキストが乱れて、回復する方法がありません。control-l
は機能しません。
管理者アカウントにログインしてターミナルを開き実行すると、nano
ウィンドウのサイズ変更に問題はなく、テキストが乱れることもありません。
同じ問題が逆の場合でも発生します。管理者アカウントから使用しsu - user
て実行しnano
、サイズを変更すると、テキストが乱れます。
ここで何が起こっているのか、またこの問題をどう解決すればよいのか、何かご存知ですか?
私はnano4.9を使用しています
答え1
この問題には選択された回答があることは承知していますが、マニュアルを読むと、必要なのは次のコマンドを使用して画面を更新することです。
^L
それは
ctrl + L
何らかの理由でバッファが破損した場合は、数回タップする必要があります。
答え2
ターミナル エミュレータは、ターミナル エミュレータとともに起動されたシェルにウィンドウ変更信号 (SIGWINCH) を送信します。シェルはそれを子に渡すことになっていますが、別のユーザー アカウント ( を使用するか、またはそれsu
以外の方法で) に移行すると、別のユーザーとして実行されているため、そのシェルに信号を送ることができません。そのため、su
'd シェルとそこから実行されるプログラムは、実際のウィンドウ サイズが変更されたという事実に気づかず、古いウィンドウ サイズを使用し続けます。
新しいウィンドウ サイズを使用するようにセッションを完全に更新するには、そのシェルで をsu
実行する必要があります。これにより、環境変数 COLUMNS と LINES (が必要な理由) とターミナル設定 (コマンド およびと同等) の両方が更新されます。多くの場合、部分がないだけで十分ですが、一部のプログラムでは環境変数も必要な場合があります。eval $(resize)
eval
stty rows
stty columns
resize
eval...
答え3
login
この問題を回避するには、OS X を使用します。
$login
ログイン:your username
パスワード:your password
最終ログイン: 日 月 日 HH:MM:SS on ttys000
$whoami
ユーザー名
ユーザーに感謝grgの上Apple スタックエクスチェンジ