Me encanta estirar mi terminal en Unix. ¿Cuál es la historia o la razón detrás de la línea de comandos de Windows lame?
Me encanta estirar mi terminal en Unix. ¿Cuál es la historia o la razón detrás de la línea de comandos de Windows lame?
Respuestas:
No lo es. Puede hacer clic con el botón derecho en la barra de título, seleccionar propiedades y, en la pestaña "Diseño", modificar el tamaño del búfer de la pantalla (ancho de línea y retroceso) y el tamaño de la ventana (tamaño de la ventana gráfica). Si inició cmd desde un acceso directo, puede guardar esta configuración para futuras sesiones.
Si tiene fobia al ratón, también puede escribir esto dentro de la ventana de cmd:
mode <cols>,<lines>
mode 80,25
mode 120,50
etc.
No es limitado.
Es posible que desee consultar Console . Es una aplicación de código abierto que le permite ejecutar múltiples shells en un entorno con pestañas. También puede establecer la transparencia alfa de las conchas.
RE: Porque MS valora la "compatibilidad con versiones anteriores" sobre muchas cosas y, en este caso, sospecho que es una creencia equivocada de que de alguna manera pondrá nerviosa a la gente si no tiene su ventana estándar de 80 anchos.
Sin embargo, la compatibilidad con versiones anteriores funciona bastante mal. No creo que Microsoft haya sido muy minucioso en su implementación, y creo que Microsoft es el modelo para asegurarse de que las versiones más nuevas no funcionen en versiones anteriores. Mucho no funciona correctamente en COMMAND.COM, lo que sabotea considerablemente la utilidad que posee, sin mencionar que tienes que ingresar DOSONLY para que algunos programas se ejecuten correctamente, además de que Microsoft ha estado eliminando comandos útiles. Honestamente, no puedo imaginar que Microsoft tenga la "compatibilidad con versiones anteriores" en gran medida.
Además, creo que la verdadera razón por la que la longitud de la línea está en un estándar de 80 columnas es porque la mayoría de los programas de línea de comandos, etc. operan bajo el supuesto de que el usuario tiene un límite en un indicador de 80 columnas, lo que significa que aumentar el ancho puede causar errores de formato o algo peor, posiblemente rompan los programas por completo.
Como mencionó jmucchiello, MODE funcionará bien para cambiar el tamaño de la ventana si lo desea.
Configura los dispositivos del sistema. Puerto serie: MODE COMm [:] [BAUD = b] [PARITY = p] [DATA = d] [STOP = s] [to = on | off] [xon = on | off] [odsr = on | off] [octs = on | off] [dtr = on | off | hs] [rts = encendido | apagado | hs | tg] [idsr = encendido | apagado] Estado del dispositivo: MODE [dispositivo] [/ STATUS] Impresión de redireccionamiento: MODE LPTn [:] = COMm [:] Seleccione la página de códigos: MODE CON [:] CP SELECT = yyy Estado de la página de códigos: MODE CON [:] CP [/ STATUS] Modo de visualización: MODE CON [:] [COLS = c] [LINES = n] Tasa tipográfica: MODE CON [:] [RATE = r DELAY = d]
Sin embargo, si tiene DOSONLY habilitado en su CONFIG.NT, cuando abra COMMAND.COM, heredará una resolución de línea de estilo DOS adecuada de cmd.exe, pero no puede invocar MODE desde dentro de COMMAND.COM. Si desea cambiar el tamaño dentro de COMMAND.COM, tendrá que usar instrucciones de ensamblaje de 16 bits, así:
Resolución de línea 80x50 (sin framebuffer, sin SVGA, prácticamente universalmente compatible).
DEPURAR A100 MOV AX, 1112 INT 10 INT 20 GRAMO Q
Resolución de línea 132x60 (sin framebuffer, requiere SVGA. No funciona en tarjetas ATI gfx, normalmente funciona en tarjetas nVidia gfx, afaict siempre funciona en tarjetas Intel integradas gfx).
DEPURAR A100 MOV AX, 4F02 MOV BX, 010C INT 10 INT 20GRAMO Q
Si ingresa esto en su COMMAND.COM, le dará la resolución especificada. (Advertencia: si su monitor es lo suficientemente antiguo como para no admitir el modo, es posible que termine destruyéndolo. Nota al margen: si puede ejecutar Windows, su monitor debería estar bien. Exención de responsabilidad: El énfasis en debería, y ha sido advertido , por lo que no es mi problema si su monitor se fríe. ;-) Sin embargo, si usa esto sin DOSONLY habilitado, COMMAND.COM cambiará de tamaño a su tamaño anterior tan pronto como la aplicación (en este caso, a menos que lo haya escrito en un archivo y ejecutado que, DEBUG) sale.
Alternativamente, puede usar MODE.COM de FreeDOS, que se ejecutará correctamente en COMMAND.COM configurado en DOSONLY. Puede extraerlo de la imagen del disco en el sitio web oficial (freedos.org) o obtenerlo enhttp://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ .
Nuevo MODO FreeDOS de Eric Auer 2003-2005. Licencia: GPL. (versión 12may2005) MODE [dispositivo] [/ STA [TUS]] (muestra el estado de uno o todos los dispositivos) MODE LPTn [:] cols [, [líneas] [, reintentar]] (cols o cpi, 6/8 lpp, reintentar p o n) MODE LPTn [:] [COLS = ...] [LINES = ...] [RETRY = ...] (reintentar: p infinito / n ninguno) MODE LPTn [:] = [COMn [:] | NUL] (redirige los datos de la impresora al puerto serie o NUL) MODO COMn [:] baudios, paridad, datos, detener, reintentar (se permiten valores vacíos) MODO COMn [:] [BAUDIOS [DURO] = ...] [PARIDAD = ...] [DATOS = ...] [DETENER = ...] [REINTENTAR = ...] Los baudios se pueden abreviar como un prefijo único, la paridad puede ser o / e / n / s / m, el 2 últimos espacios medios / marca, los datos pueden ser 5..8, parada 1..2. ¡Reintentar es IGNORADO! PLANEADO: Reintentar b / e / r -> ocupado / error / listo si está ocupado, p / n infinito / sin reintento. MODE CON [:] [CP | CODEPAGE] [/ STA [TUS]] (FreeDOS DISPLAY debe estar cargado) MODO CON [:] [CP | CODEPAGE] REF [RESH] (necesita DISPLAY) MODE CON [:] [CP | CODEPAGE] SEL [ECT] = número (necesita DISPLAY) MODE CON [:] [CP | CODEPAGE] PREP [ARE] = ((codepage) filename) (necesita DISPLAY) Utilice PREP = ((, cp2, cp3,, cp5) ...) para preparar páginas de códigos en otros búferes. MODO [40 | 80 | BW40 | BW80 | CO40 | CO80 | MONO] [, filas] (las filas pueden ser 25, 28, 43 o 50) Use 8, 14 o 16 como valor de 'filas' si solo desea cambiar la fuente. MODO [CO40 | CO80 | ...], [R | L] [, T] (desplaza CGA hacia la izquierda / derecha, T es el modo interactivo) MODE CON [:] [NUMLOCK | CAPSLOCK | SCROLLLOCK | SWITCHAR] = valor El valor puede ser: + o - para las cerraduras o un carácter para switchar. MODE CON [:] [COLS = ...] [LINES = ...] (los valores posibles dependen de su hardware) MODE CON [:] [RATE = ...] [DELAY = ...] (tasa predeterminada 20, demora predeterminada 1) La velocidad puede ser 1..32 para 2..30 caracteres / seg, el retardo puede ser 1..4 para 1 / 4..4 / 4 seg.
Por las mismas razones que con el código ASM que proporcioné, a menos que lo ejecutes en COMMAND.COM con DOSONLY agregado a tu archivo CONFIG.NT, la ventana volverá inmediatamente a su tamaño anterior una vez que MODE.COM salga.
Por último, como han dicho otros, también es posible modificar estas configuraciones simplemente haciendo clic derecho en la barra de título del símbolo del sistema y modificando Propiedades -> Diseño. De manera similar, puede establecer la resolución para cualquier acceso directo a CMD.EXE y archivos por lotes (haga clic con el botón derecho en el acceso directo -> Propiedades -> Diseño). Sin embargo, esto solo funciona para CMD.EXE, no para COMMAND.COM.
No sé la historia detrás de esto, pero este artículo de la lista de deseos del autor de PuTTy es una publicación interesante que explica los obstáculos técnicos involucrados con cualquier tipo de reemplazo de cmd.exe que no sea escaso:
http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-command-prompt.html
No mencionas que estás buscando un reemplazo, pero si es así, también puedes ver algunos de los reemplazos de cmd.exe como Console 2 o Take Command de JP Software, etc. También he tenido buenas experiencias con PuTTy- Cyg, que le permite usar PuTTy como un shell cygwin.
Si bien el ancho no está limitado como muestran otras respuestas, siempre me ha parecido extraño que uno pueda arrastrar y cambiar el tamaño de la altura con el mouse, pero no el ancho .
Creo que el ancho predeterminado de 80 caracteres está relacionado con la compatibilidad con programas antiguos que asumen que el terminal no tendrá más de 80 caracteres de ancho. Sin embargo, no creo que esta haya sido una razón realista durante una década más o menos.
Como han señalado otros, no está limitado a 80 caracteres de ancho, pero supongo que por qué el valor predeterminado es de 80 caracteres sería que queda de los días de DOS, donde las pantallas CRT tenían 80 caracteres de ancho.
También puede usar una aplicación de terminal diferente, como Console2 , que le permite cambiar el tamaño de la ventana todo lo que desee (entre otras cosas, como la transparencia y la capacidad de usar cualquier fuente que desee). Es una gran aplicación, la cambié y ahora solo la uso cmd.exe
cuando es absolutamente necesario.
Dado que se desplazará de izquierda a derecha, así como de arriba a abajo, lo primero que hago en un sistema es definir mi ancho como 180 y guardarlo. En general, eso es suficiente para que los rastros de pila no tengan que ajustarse en su mayor parte, pero no tanto como para que esté ocupando una tonelada de espacio.
Mientras lo hace, configure el tamaño vertical (búfer de desplazamiento hacia atrás) en todos los 9. Te alegrarás de haberlo hecho algún día.
Porque MS valora la "compatibilidad con versiones anteriores" sobre muchas cosas y, en este caso, sospecho que es una creencia equivocada que de alguna manera pondrá nerviosa a la gente si no tiene su ventana estándar de 80 anchos.
Por supuesto, podría ser que estuviera programado para un ancho fijo de 80 caracteres cuando eso era prácticamente universal, y la configuración de propiedades adicionales era un poco complicada.
ES limitado. Echale un vistazo. (Me refiero al tamaño de la ventana NO al búfer)
Verá que el ancho máximo que puede establecer es limitado pero varía según la resolución de su pantalla. Si su resolución está configurada en 1024 x 768, encontrará que solo puede llegar a 128 en el ancho del símbolo del sistema. 128/1024 = .125
encontrará que esa proporción es consistente en todos los ámbitos. Tengo una sesión RDP que se ejecuta a 2000x768 (en dos de mis tres monitores) y obtengo un ancho máximo de 250.
Ahora, eso en realidad resulta ser un poco más grande que el tamaño de su monitor de actaul, pero tengo tres monitores que ejecutan escritorios individuales. (en esencia, 3 resoluciones de 1024x768) y si quiero hacer algo TAN SENCILLO como extender un símbolo del sistema en 2 o más monitores, NO PUEDO. (Quiero hacerlo cuando hago cosas con rutas muy largas (diruse.exe / etc.) ...
-C
Esto no está cerrado. Por lo tanto, debe tenerse en cuenta que Windows Terminal ahora está cambiando todo esto:
https://github.com/microsoft/terminal https://www.theverge.com/2020/1/9/21059316/microsoft-windows-terminal-crt-effects-retro-search-tabs-features https: // devblogs.microsoft.com/commandline/windows-command-line-backgrounder/ https://github.com/microsoft/terminal/blob/master/doc/terminal-v1-roadmap.md https://www.microsoft.com / es-us / p / windows-terminal-preview / 9n0dx20hk701? activetab = pivot: overviewtab
Porque mejorar la usabilidad y funcionalidad de cualquier cosa que requiera el desarrollo tipo Unix / GNU socavará a Windows como plataforma comercial para los socios de Microsoft. Evitar esto significa que los productos de otras grandes empresas para desarrolladores, como terminales mejorados y otros productos generales de terceros, como procesadores de texto, reproductores de vídeo, etc., no compiten con el software Unix / GNU existente. Sin esto, Windows no sería una plataforma rentable y Microsoft perdería su monopolio de escritorio.
Es por eso que el terminal apesta, no hay API POSIX, no hay soporte C99 en MSVC y la lista continúa. Para aclarar, las tecnologías y el desarrollo comunes de Unix / GNU no son compatibles intencionalmente para que las grandes empresas de software comercial no tengan que competir con ellos.