Si alguno de ustedes alguna vez usó 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í: supongamos que ha utilizado dos comandos anteriormente en esta sesión de Terminal. Primero usaste un cd ~
y luego un ls -la
.
En todas las terminales *nix, incluidas las de Mac, si presiona Up Arrow
, primero mostrará el ls -la
comando y, si lo presiona dos veces, el cd ~
comando. 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?
En un shell Bash, puede presionar Control+ Rpara realizar una búsqueda inteligente inversa en el historial. Comience a escribir el comando y el shell se completará automáticamente con los comandos ingresados previamente.
Luego, puede presionar Enterpara ejecutar el comando nuevamente, usar la tecla de flecha izquierda o derecha para editar el comando, o seguir presionando Control+ Rpara recorrer otras posibles finalizaciones.
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
Option-up sería \e\e[A
y control-p \C-p
. Puede ver las secuencias de escape de otras combinaciones de teclas presionando control-v.
Otra cosa que puede hacer es escribir !
y luego la primera letra, y encontrará la más reciente. IE: cd ~
se puede acceder con!c
Esta es una característica del caparazón. Control-R hará lo que usted describe, pero cambiar a un shell más moderno le dará mucho más. Eche un vistazo a Z-shell (zsh), hay una pequeña curva de aprendizaje, pero es muy poderoso.
zsh completará los comandos exactamente como en su ejemplo. Ni siquiera tiene que hacer nada más que usarlo para su caparazón.
Agréguelos 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 equivalente .profile.
Sibbs juegos de azar
~/.inputrc
, simplemente cree uno.Luis