

La función de autocompletado de línea de comandos (también conocida como autocompletado con la tecla Tab ) es una característica común de los intérpretes de línea de comandos , en la que el programa completa automáticamente los comandos que se han escrito parcialmente.
Los intérpretes de línea de comandos son programas que permiten al usuario interactuar con el sistema operativo subyacente escribiendo comandos en la línea de comandos mediante una interfaz de línea de comandos (CLI), a diferencia de usar el ratón en una interfaz gráfica de usuario (GUI). La función de autocompletado de línea de comandos permite al usuario escribir los primeros caracteres de un comando, programa o nombre de archivo y pulsar una tecla de autocompletado (normalmente Tab ↹) para completar el resto. A continuación, el usuario pulsa o para ejecutar el comando o abrir el archivo.Return↵ Enter
La función de autocompletado de comandos resulta útil de diversas maneras, como ilustra la animación que acompaña a este artículo. Los comandos de uso frecuente, especialmente aquellos con nombres largos, requieren menos pulsaciones de teclas. Los comandos con nombres de archivo largos o difíciles de escribir se pueden introducir tecleando los primeros caracteres y pulsando una tecla de autocompletado, que completa el comando o el nombre del archivo. En caso de que existan varias opciones de autocompletado, algunos intérpretes de línea de comandos, en particular los shells de Unix, mostrarán todas las posibles opciones que comiencen con esos pocos caracteres. El usuario puede escribir más caracteres y pulsar de nuevo para ver una nueva lista más reducida si los caracteres introducidos siguen siendo ambiguos, o bien completar el comando/nombre del archivo añadiendo un espacio al final. Otra forma de autocompletado muestra todos los resultados coincidentes cuando la entrada es ambigua.Tab ↹
Los elementos que se pueden completar pueden incluir comandos, argumentos, nombres de archivos y otras entidades, según el intérprete específico y su configuración. El autocompletado de la línea de comandos generalmente solo funciona en modo interactivo . Es decir, no se puede invocar para completar comandos escritos parcialmente en scripts o archivos por lotes , incluso si el autocompletado es inequívoco. El nombre de autocompletado con la tecla Tab proviene del hecho de que el autocompletado de la línea de comandos se invoca a menudo pulsando la tecla Tab .
Historia
La función de autocompletado mediante la tecla Tab apareció en los inicios de la informática. Uno de los primeros ejemplos se encuentra en el sistema de tiempo compartido de Berkeley para el SDS 940 : si una cadena de texto era inequívoca, el intérprete la completaba automáticamente sin necesidad de comandos del usuario. Sin embargo, si la cadena era ambigua, no hacía nada. Esta función tenía sus ventajas y desventajas, ya que no gestionaba bien los errores tipográficos frecuentes .
Más tarde, los desarrolladores del sistema operativo TENEX adoptaron la idea, pero introdujeron un cambio crucial. Implementaron el "reconocimiento de escape", donde el autocompletado solo ocurría cuando el usuario pulsaba la tecla Escape (de ahí su nombre). TENEX también amplió el autocompletado, pasando de solo nombres de programas (como en el sistema Berkeley) a nombres de programas y nombres de archivos. [ 1 ]
El descendiente de TENEX, TOPS-20, trasladó la función de autocompletado de la línea de comandos del intérprete de comandos al sistema operativo mediante la llamada al sistema COMND JSYS, poniéndola a disposición de otras aplicaciones de usuario. [ 2 ] A partir de ahí, fue adoptada por Unix .
Por otra parte, el ordenador CAB 500 (1960) incluía un lenguaje de programación con autocompletado de palabras clave en francés llamado PAF.
Ejemplo
Para abrir el archivo introduction-to-command-line-completion.html con Firefox , se escribiría:
Introducción a la línea de comandos de Firefox.html
Este comando es muy largo de escribir. En su lugar, podemos usar la función de autocompletar de la línea de comandos.
Incitando a la finalización
El siguiente ejemplo muestra cómo funciona el autocompletado de comandos en Bash . Otros intérpretes de comandos pueden funcionar de forma ligeramente diferente.
Primero escribimos las tres primeras letras de nuestro comando:
abeto
Luego presionamos y, dado que el único comando en nuestro sistema que comienza con "fir" es "firefox", se completará a:Tab ↹
Firefox
Luego comenzamos a escribir el nombre del archivo:
Firefox i
Pero esta vez introduction-to-command-line-completion.html no es el único archivo en el directorio actual que comienza con "i". El directorio también contiene los archivos introduction-to-bash.html e introduction-to-firefox.html . El sistema no puede decidir cuál de estos nombres de archivo queríamos escribir, pero sí sabe que el archivo debe comenzar con "introduction-to-", por lo que el comando se completará a:
Introducción a Firefox
Ahora escribimos "c":
Introducción a Firefox
Después de pulsarlo, se completará con el nombre de archivo completo:Tab ↹
Introducción a la línea de comandos de Firefox.html
En resumen, escribimos:
abeto i cTab ↹Tab ↹Tab ↹
Esto supone tan solo ocho pulsaciones de teclas, lo que es considerablemente menos que las 52 que habríamos necesitado para escribir sin utilizar la función de autocompletado de la línea de comandos.
Finalización rotativa
El siguiente ejemplo muestra cómo funciona el autocompletado de la línea de comandos con el autocompletado rotativo, como el que utiliza la consola CMD de Windows .
Seguimos el mismo procedimiento que para solicitar la finalización hasta que tengamos:
Firefox i
Pulsamos una vez, con el resultado:Tab ↹
Introducción a bash en Firefox.html
Volvemos a presionar y obtenemos:Tab ↹
Introducción a la línea de comandos de Firefox.html
En resumen, escribimos:
abeto iTab ↹Tab ↹Tab ↹
Esto solo requiere siete pulsaciones de teclas, comparable a la función de autocompletado mediante indicaciones. Funciona mejor si sabemos qué posibilidades barajará el intérprete.
Finalización en diferentes interfaces de línea de comandos
- Los shells de Unix , incluyendo Bash (el shell predeterminado en la mayoría de las distribuciones de Linux ) y ksh entre muchos otros, tienen una larga tradición de capacidades de autocompletado avanzadas y personalizables. [ 3 ]
- La función de autocompletado programable de Bash
completeycompgenlos comandos [ 4 ] han estado disponibles desde la versión beta de 2.04 [ 3 ] en 2000 [ 5 ] y ofrece al menos autocompletado de ruta y nombre de archivo. - Para los usuarios de KornShell, el autocompletado de nombres de archivo depende del valor de la variable EDITOR. Si EDITOR está configurado como vi, escribe parte del nombre y luego , . Si EDITOR está configurado como Emacs , escribe parte del nombre y luego , .Escape\EscapeEscape
- El intérprete de comandos Z (zsh) fue pionero en la compatibilidad con la función de autocompletado totalmente programable, permitiendo a los usuarios que el intérprete complete automáticamente los parámetros de diversos comandos, independientemente del propio intérprete. Esto se logra preconfigurando el intérprete con definiciones de todos los modificadores conocidos, así como con los tipos de parámetros adecuados. Por ejemplo, esto permite al usuario escribir un comando y que el intérprete complete únicamente archivos comprimidos con gzip del sistema de archivos, omitiendo aquellos que sean incompatibles con los parámetros de entrada. Una instalación moderna de zsh incluye definiciones de autocompletado para más de quinientos comandos.tar xzf Tab ↹
- Tcsh ofrece autocompletado predeterminado para nombres de archivos, comandos y variables, activado mediante . El comando integrado 'complete' proporciona un autocompletado totalmente programable. El código fuente incluye un archivo 'complete.tcsh' con numerosos ejemplos de su sintaxis de autocompletado.Tab ↹
- La función de autocompletado programable de Bash
- Windows PowerShell , el intérprete de comandos extensible de Microsoft, que se basa en la programación orientada a objetos y el marco de trabajo Microsoft .NET , proporciona capacidades de autocompletado potentes y personalizables similares a las de los intérpretes de comandos Unix tradicionales. [ 6 ] [ 7 ]
- El procesador de comandos cmd.exe de los sistemas basados en Windows NT admite la función de autocompletado básica. Es posible usar una combinación de teclas independiente solo para buscar nombres de directorios.
- cmd.exe /F:ONHabilita los caracteres de autocompletado de nombres de archivos y directorios (^F y ^D por defecto). Consulte más información.cmd.exe /?
- TweakUI se puede usar para configurar las teclas que se usan para completar nombres de archivos y nombres de directorios. [ 8 ]
- El procesador de comandos de MS-DOS, COMMAND.COM, no tenía autocompletado de línea de comandos: al presionar la tecla Tab, simplemente avanzaba el cursor . Sin embargo, varios intérpretes de comandos mejorados para MS-DOS, como 4DOS , la versión de FreeDOS de COMMAND.COM o Enhanced DOSKEY.COM, incluyen autocompletado de estilo Unix mediante la tecla Tab.
- Far Manager, además de sus funciones de gestión de archivos, proporciona historial de comandos y autocompletado de líneas para Windows.
Véase también
Referencias
- ↑ "Orígenes y desarrollo de TOPS-20" . www.opost.com . Archivado del original el 1 de agosto de 2020. Consultado el 10 de septiembre de 2006 .
- ↑ Guía del lenguaje ensamblador de DECSYSTEM-20
- 1 2 "Trabajar de forma más productiva con bash 2.x/3.x" . www.caliban.org .
- ↑ "Manual de referencia de Bash" . tiswww.case.edu .
- ↑ "Índice de /gnu/bash" . ftp.swin.edu.au .
- ↑ "El experto en PowerShell" . thepowershellguy.com .
- ↑ "El experto en PowerShell" . thepowershellguy.com .
- ↑ "Simon Peyton Jones en Microsoft Research" . Microsoft .
Enlaces externos
shells de Unix
- Descripción general de la finalización de Bash: "Trabajar de forma más productiva con bash 2.x/3.x" por Ian Macdonald
- El sistema de autocompletado de zsh, capítulo del Manual de Z Shell
- Completar y listar según el manual TCSH.
Intérpretes de comandos de Windows
(Asegúrese de consultar la sección "Se aplica a" en cada artículo).
- Windows Server 2003:
- Finalización del nombre del directorio
- Finalización del nombre de archivo
- Windows XP
- Windows 2000/NT 4
- Técnicas de interfaz de usuario
- Autocompletar