Como resolver o problema em que o texto da tela nano fica embaralhado ao usar su - admin

Como resolver o problema em que o texto da tela nano fica embaralhado ao usar su - admin

No Terminal I, su - adminenquanto estiver na minha conta de usuário brew update, modifique .bashrc, etc.

Percebi que, em minha sessão de usuário, alterar o tamanho da janela durante a execução nanonão embaralha o texto. A janela é redimensionada perfeitamente.

Porém, depois de abrir uma nova janela do Terminal, executar su - admine nanotentar redimensionar - o texto fica embaralhado e não há como recuperá-lo. control-lnão funciona.

Quando faço login na conta de administrador, abro o Terminal e executo, nanonão há problema em redimensionar a janela - o texto não fica embaralhado.

O mesmo problema acontece ao contrário. Na minha conta de administrador, usar su - user, executar nanoe redimensionar fará com que o texto fique embaralhado.

Alguma ideia do que está acontecendo aqui e como resolver esse problema?

Estou usando o nano 4.9

Responder1

Sei que esse problema tem uma resposta selecionada, mas se você ler o manual, o que é necessário é uma atualização de tela, usando:

^L

Qual é

ctrl + L

Você precisa tocar algumas vezes se por algum motivo o buffer for corrompido.

Responder2

O emulador de terminal enviará um sinal de mudança de janela (SIGWINCH) para o shell que foi iniciado junto com o emulador de terminal. O shell deve passá-lo para seus filhos - mas quando você fizer a transição para outra conta de usuário (usando suou não), ele não será capaz de sinalizar esse shell porque está sendo executado como um usuário diferente. Portanto, o sushell 'd e quaisquer programas executados a partir dele continuarão usando o tamanho antigo da janela, alheios ao fato de que o tamanho real da janela mudou.

Para atualizar totalmente a susessão para usar o novo tamanho de janela, você precisará executar eval $(resize)nesse shell. Ele atualizará as variáveis ​​de ambiente COLUMNS e LINES (por isso evalé necessário) e as configurações do terminal (equivalente aos comandos stty rowse stty columns). Em muitos casos, apenas resizesem a eval...parte pode ser suficiente, mas alguns programas também podem precisar das variáveis ​​de ambiente.

Responder3

Usar loginno OS X é uma solução alternativa para esse problema.


$ login
login: your username
senha: your password
Último login: Dia Mês Data HH:MM:SS em ttys000
$ whoami
seu nome de usuário

Obrigado ao usuáriogrgsobreTroca de pilha da Apple

informação relacionada