2012-05-07 10 views
5

¿Hay alguna terminación de bash más inteligente que la normal? Me imagino tener algo así como la función de autocompletado de Intellij Idea. Por ejemplo, hay una carpeta llamada anExampleFolder, si escribo aEF o incluso aef y luego presiono tab que la completa o de alguna manera abre un menú desplegable.Estilo de finalización de Intellij Idea para Bash

+0

¿Cuál es la normal? ¿El plugin Bash? Eso es. – sylvanaar

+0

Por normal, me refiero al uno y viene con una instalación de ubuntu. Solo busco cadenas en las que la cadena de caracteres es un prefijo. –

+0

Prueba el plugin bash. – sylvanaar

Respuesta

0

Como dijo sylvanaar - Bash plugin for Intellij debería ser suficiente.

+1

Oh, aquí se está pasando algo por alto.Básicamente, quiero un plugin para BASH no Intellij! –

+0

Ahh ... No importa entonces. – Vic

0

zsh tiene mecanismos inteligentes de autocompletado como complementos. En combinación con oh-my-zsh y el complemento fasd, debe obtener incluso más de lo que ofrece IntelliJ.

+0

... aunque con zsh implementando reglas de expansión mejor diseñadas que las POSIX, es muy fácil adoptar hábitos que resultan en errores graves (a veces incluso de seguridad) al escribir código para shells que cumplen con POSIX. Tengo problemas para aconsejar a 'zsh' que lo usen personas que pueden estar escribiendo código para bash, ksh o cualquier otro shell siguiendo las reglas de POSIX. –

+0

Tengo que decir que no puedo estar de acuerdo. En la terminal, uso zsh todo el tiempo con muchos complementos y funciones adicionales, mientras que, por otro lado, desarrollo un sistema de guiones masivo específicamente en bash. No tengo problemas para separar uno de otro. Es como hablar dos idiomas similares. ¿Algún ejemplo de riesgos de seguridad mencionados? – niieani

+0

Con respecto a la seguridad, el gran problema es citar las expansiones. Poder poner, digamos, '//etc/passwd /' en medio de la ruta de un archivo y expandirlo cuando alguien no tuvo cuidado de citar es un riesgo. Del mismo modo para los personajes glob y tal. De hecho, he visto varias copias de seguridad de las copias de seguridad depuradas por una secuencia de comandos mal escrita a causa de ese error (cuando un desbordamiento del búfer escribió basura en un nombre de archivo), por lo que no es puramente teórico. –

2

fzf ("buscador difuso para su caparazón") puede ser lo que está buscando. Para su ejemplo de cd-ción a anExampleFolder, usted tiene 3 opciones utilizando fzf:

  • fd RET AEF RET
    • lanzamiento fzf con la lista recursiva de directorios secundarios. Ingrese el término de búsqueda difusa aEF, seleccione la coincidencia con las teclas de flecha, aceptar.
  • ALTC AEF RET
    • Igual que el anterior pero usando una clave de enlace en lugar de la función shell
  • cd AEF ** TABRETRET
    • utilizando la función experimental integración de auto-completado

Tenga en cuenta que en todos los casos pueden no ser necesarias las teclas de flecha, si el difusa búsqueda encuentra lo usted está buscando como el primer partido. Y puede usarse para muchas otras cosas además de cd; el GitHub README tiene muchos otros ejemplos y enlaces.