
En la Terminal I su - admin
mientras estoy en mi cuenta de usuario para brew update
, modificar .bashrc
, etc.
He notado que cuando estoy en mi sesión de usuario, cambiar el tamaño de la ventana mientras se ejecuta nano
no codifica el texto en absoluto. La ventana cambia de tamaño perfectamente.
Sin embargo, después de abrir una nueva ventana de Terminal, ejecutar su - admin
e nano
intentar cambiar el tamaño, el texto está codificado y no hay forma de recuperarlo. control-l
no funciona.
Cuando inicio sesión en la cuenta de administrador, abro Terminal y ejecuto, nano
no hay problema para cambiar el tamaño de la ventana: el texto no se codifica.
El mismo problema ocurre a la inversa. Desde mi cuenta de administrador, usar su - user
, ejecutar nano
y cambiar el tamaño hará que el texto se desordene.
¿Alguna idea de lo que está pasando aquí y cómo resolver este problema?
Estoy usando nano 4.9
Respuesta1
Sé que este problema tiene una respuesta seleccionada, pero si lees el manual, lo que se necesita es actualizar la pantalla, usando:
^L
Cual es
ctrl + L
Debes tocarlo un par de veces si por alguna razón el búfer se daña.
Respuesta2
El emulador de terminal enviará una señal de cambio de ventana (SIGWINCH) al shell que se inició junto con el emulador de terminal. Se supone que el shell debe pasarlo a sus hijos, pero cuando haya realizado la transición a otra cuenta de usuario (usando su
o no), no podrá señalar ese shell porque se está ejecutando como un usuario diferente. Por lo tanto, el su
shell 'd y cualquier programa que se ejecute desde él seguirán usando el tamaño de ventana anterior, sin tener en cuenta el hecho de que el tamaño real de la ventana ha cambiado.
Para actualizar completamente la su
sesión para usar el nuevo tamaño de ventana, deberá ejecutarla eval $(resize)
en ese shell. Actualizará las variables de entorno COLUMNAS y LÍNEAS (por eso eval
es necesario) y la configuración del terminal (equivalente a los comandos stty rows
y stty columns
). En muchos casos, simplemente resize
sin la eval...
pieza puede ser suficiente, pero algunos programas pueden necesitar también las variables de entorno.
Respuesta3
Usarlo login
en OS X es una solución alternativa para este problema.
$ login
inicio de sesión: your username
contraseña: your password
último inicio de sesión: Día Mes Fecha HH:MM:SS en ttys000
$ whoami
su nombre de usuario
Gracias al usuariogrgenIntercambio de pila de Apple