第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
ユーザー名
ありがとうございますプリンセス存在するアップルスタック交換