
No Terminal I, su - admin
enquanto 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 nano
não embaralha o texto. A janela é redimensionada perfeitamente.
Porém, depois de abrir uma nova janela do Terminal, executar su - admin
e nano
tentar redimensionar - o texto fica embaralhado e não há como recuperá-lo. control-l
não funciona.
Quando faço login na conta de administrador, abro o Terminal e executo, nano
nã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 nano
e 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 su
ou não), ele não será capaz de sinalizar esse shell porque está sendo executado como um usuário diferente. Portanto, o su
shell '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 su
sessã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 rows
e stty columns
). Em muitos casos, apenas resize
sem a eval...
parte pode ser suficiente, mas alguns programas também podem precisar das variáveis de ambiente.
Responder3
Usar login
no 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