suを使用するとナノスクリーンテキストが壊れる問題を解決する方法 - admin

suを使用するとナノスクリーンテキストが壊れる問題を解決する方法 - admin

第1ターミナルのsu - adminマイユーザーアカウントで、brew update修正などを行います.bashrc

私のユーザーセッションでは、実行時にウィンドウサイズを変更してもテキストがnanoまったく破損しないことがわかりました。ウィンドウサイズは完全に調整されます。

ただし、新しいターミナルウィンドウを開き、を実行してsu - adminサイズnanoを変更しようとすると、テキストが混在して回復できません。control-l動作しません。

管理者アカウントでログインして端末を開いて実行すると、nanoウィンドウのサイズ変更に問題はありません。テキストが混在しません。

逆にも同じ問題が発生します。私の管理者アカウントでを使用しsu - userて実行してnanoサイズを変更すると、テキストが壊れます。

ここで何が起こっているのか、どうすれば解決できるのかご存知ですか?

ナノ4.9を使用しています。

答え1

この質問に選択された回答があることはわかっていますが、ドキュメントを読む場合は必要なのは画面の更新です。以下を使用してください。

^L

これは

ctrl + L

何らかの理由でバッファが破損している場合は、そのバッファを数回クリックする必要があります。

答え2

端末エミュレータは、端末エミュレータで始まるシェルにウィンドウ変更信号(SIGWINCH)を送信します。シェルはこれを子に渡す必要があります。ただし、別のユーザーアカウントに切り替えると(使用suまたは他の方法で)他のユーザーとして実行されているため、そのシェルにシグナルを送信することはできません。したがって、su'dシェルとここで実行されるすべてのプログラムは、実際のウィンドウサイズが変更されたという事実を無視し、古いウィンドウサイズを使い続けます。

新しいウィンドウサイズを使用するようにセッションを完全に更新するには、このシェルで実行するsu必要があります。eval $(resize)環境変数COLUMNSとLINES(これがeval必要な理由)と端末設定(stty rowsおよびコマンドと同じstty columns)を更新します。ほとんどの場合、resizeこのセクションは不要でeval...十分ですが、一部のプログラムでは環境変数も必要になる場合があります。

答え3

OS Xで使用するのはloginこの問題に対する解決策です。


$login
ログイン名:your username
パスワード:your password
最後のログイン:dd HH:MM:SS on ttys000
$whoami
ユーザー名

ありがとうございますプリンセス存在するアップルスタック交換

関連情報