Funcionalidad autocompletada del terminal mejorada (similar a la de Matlab)

16

Si alguno de ustedes utilizó Matlab, es posible que haya notado la funcionalidad de la ventana de comandos en ese programa. Me pregunto si es posible habilitar la misma funcionalidad en Mac Terminal.

Funciona así: suponga que ha utilizado dos comandos anteriormente en esta sesión de Terminal. Primero usaste un cd ~ y luego un ls -la .

En todos los terminales * nix, incluidos los de Mac, si presionas el Up Arrow , primero mostrará el comando ls -la y, si lo presionas dos veces, el comando cd ~ . Esto es genial. Pero, en Matlab, si primero escribe la letra c y luego presiona Up Arrow , no le mostrará ls , sino que irá directamente a cd ~ . Esto ahorra mucho tiempo cuando tiene comandos grandes y una larga lista de comandos utilizados anteriormente.

¿Es posible?

    
pregunta perr0 01.02.2013 - 23:27

6 respuestas

25

En un shell Bash, puede presionar Control + R para hacer una búsqueda inteligente inversa en el historial. Comience a escribir el comando y la shell se autocompletará con los comandos ingresados previamente.

Luego puede presionar Ingresar para ejecutar el comando nuevamente, usar la flecha hacia la izquierda o hacia la derecha para editar el comando, o continuar presionando Control + R para pasar por otras posibles terminaciones.

    
respondido por el Gerry 01.02.2013 - 23:40
9

Guarde esto como ~ / .inputrc:

# make the up and down arrows cycle through commands that match the start of a line
"\e[A": history-search-backward
"\e[B": history-search-forward

La opción de suscripción sería \e\e[A y control-p \C-p . Puede ver las secuencias de escape de otras combinaciones de teclas presionando control-v.

    
respondido por el user495470 02.02.2013 - 14:30
1

Otra cosa que puedes hacer es escribir ! y luego la primera letra, y encontrará la más reciente. Se puede acceder a IE: cd ~ con !c

    
respondido por el Mark Robinson 02.02.2013 - 00:16
1

Esta es una característica del shell. Control-R hará lo que usted describe, pero cambiarlo a un shell más moderno le proporcionará mucho más. Echa un vistazo a Z-shell (zsh), hay una pequeña curva de aprendizaje, pero es muy potente.

    
respondido por el Ɱark Ƭ 01.02.2013 - 23:45
1

zsh completará los comandos exactamente como en tu ejemplo. Ni siquiera tiene que hacer nada más que utilizarlo para su shell.

    
respondido por el Chris 03.02.2013 - 01:28
0

Agregue estos a su .cshrc (si está usando tcsh) -

  bindkey -k up history-search-backward
  bindkey -k down history-search-forward

Luego, haga Source ~ / .cshrc para obtener exactamente la funcionalidad que describe.

No sé si hay un .profile equivalente.

    
respondido por el possible 02.02.2013 - 01:14

Lea otras preguntas en las etiquetas