Cómo resolver el problema por el cual el texto de la pantalla nano se codifica al usar su - admin

Cómo resolver el problema por el cual el texto de la pantalla nano se codifica al usar su - admin

En la Terminal I su - adminmientras 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 nanono 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 - admine nanointentar cambiar el tamaño, el texto está codificado y no hay forma de recuperarlo. control-lno funciona.

Cuando inicio sesión en la cuenta de administrador, abro Terminal y ejecuto, nanono 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 nanoy 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 suo no), no podrá señalar ese shell porque se está ejecutando como un usuario diferente. Por lo tanto, el sushell '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 susesió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 evales necesario) y la configuración del terminal (equivalente a los comandos stty rowsy stty columns). En muchos casos, simplemente resizesin la eval...pieza puede ser suficiente, pero algunos programas pueden necesitar también las variables de entorno.

Respuesta3

Usarlo loginen 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

información relacionada