Cómo cambiar el tamaño del búfer del historial de comandos en la Terminal de Windows

Cómo cambiar el tamaño del búfer del historial de comandos en la Terminal de Windows

Puedo cambiar el tamaño del búfer del historial de CMD.exe usando las preferencias:

Propiedades CMD

Pero, ¿cómo puedo hacerlo cuando ejecuto un shell CMD dentro de la Terminal de Windows? Esas configuraciones no se encuentran por ningún lado.

Editar:

Esta pregunta no tiene nada que ver con la configuración de "Tamaño del historial" de WT que está documentada como:

Tamaño del historial
Esto establece el número de líneas encima de las que se muestran en la ventana a la que puede desplazarse hacia atrás.

Este es el equivalente al "tamaño del búfer de pantalla" de CMD:

Propiedades de diseño

Estoy preguntando sobre el buffer de entrada.comandosque puedes recorrer usando las flechas hacia arriba y hacia abajo, o usando F7 de esta manera:

ingrese la descripción de la imagen aquí

(Si lo intenta en una ventana CMD que se ejecuta dentro de WT, no mostrará más de 50)

Respuesta1

Primero, algo de terminología para que estemos en la misma página:

Este es el equivalente al "tamaño del búfer de pantalla" de CMD.

Si bien la mayoría de la gente piensa que este cuadro de diálogo es parte de CMD, en realidad es el "Host de consola de Windows" ( conhost.exeo "ConHost"), la aplicación de terminal heredada (más de 20 años) para Windows que Windows Terminal está diseñada para reemplazar.

También puede ver la opción "Historial de comandos" a la que hace referencia en cualquier otra aplicación basada en terminal que ejecute en Windows Console Host, como PowerShell o WSL. Sin embargo, sólo cuando se aloja un shell CMD esa configuración controla realmente la longitud del historial de comandos.

Y eso fue,para citar a uno de los desarrolladores de Windows Terminal(quien también es responsable del mantenimiento de ConHost):

Un error arquitectónico que no pretendemos volver a cometer.

Ésa es la mala noticia. La buena noticia es que debería poder replicar esta funcionalidad con otras funciones. Como dijo uno de los otros miembros del equipo de Microsoft en ese mismo hilo de Github:

No es responsabilidad de la Terminal recordar los comandos ejecutados por un cliente de línea de comandos. Esa es la responsabilidad delcaparazón.

Y, como shell, CMD en sí tiene esta funcionalidad a través de doskey.exe. P.ej:

doskey /listsize=999

Eso establecerá el tamaño del historial de comandos en 999, anulando lo que esté configurado en ConHost, así como el tamaño predeterminado de 50 que está viendo en la Terminal de Windows.

Puede cambiar esto para todas las sesiones CMD en Windows Terminal de la siguiente manera:

  1. Creando un archivo winterm_start.cmd(o como quieras llamarlo) en tu directorio de Perfil C:\Users\<username>(o donde quieras colocarlo) con:

    @echo off
    doskey /listsize=999
    
  2. Abrir la terminal de WindowsAjustes

  3. Seleccionando el perfil "Símbolo del sistema".

  4. Bajo laGeneralpestaña (la primera), cambie elLínea de comando.

    De:

    %SystemRoot%\System32\cmd.exe
    

    A:

    %SystemRoot%\System32\cmd.exe /k %UserProfile%\winterm_start.cmd
    

    (Ajustando, por supuesto, si cambió el nombre del archivo/ubicación)

Cualquier perfil nuevo de símbolo del sistema que abra ahora debería tener un historial de comandos ampliado (incluido F7el soporte).

Probé esto pegando 100 líneas de:

echo 1
echo 2
...

... en un símbolo del sistema en la terminal de Windowssineste cambio, y solo recordaba los 50 comandos más recientes. Con este cambio se acordó de todos ellos (y más, claro).

información relacionada