Fonctionnalité de saisie semi-automatique améliorée du terminal (similaire à Matlab)


18

Si l'un d'entre vous a déjà utilisé Matlab, vous avez peut-être remarqué la fonctionnalité de la fenêtre de commande dans ce programme. Je me demande s'il est possible d'activer la même fonctionnalité dans Mac Terminal.

Cela fonctionne comme ceci: supposons que vous ayez déjà utilisé deux commandes dans cette session Terminal. Vous avez d'abord utilisé un cd ~, puis un ls -la.

Dans chaque terminal * nix, y compris les Mac, si vous appuyez sur Up Arrow, il affichera d'abord la ls -lacommande et, si vous le frappez deux fois, la cd ~commande. C'est bien. Mais, dans Matlab, si vous tapez d'abord la lettre cpuis appuyez sur Up Arrow, elle ne s'affichera pas ls, mais allez directement à cd ~. Cela vous fait gagner beaucoup de temps lorsque vous avez de grosses commandes et une longue liste de commandes précédemment utilisées.

C'est possible?

Réponses:


27

Dans un shell Bash, vous pouvez appuyer sur Control+ Rpour effectuer une recherche intelligente inverse dans l'historique. Commencez à taper la commande et le shell se complétera automatiquement avec les commandes entrées précédemment.

Ensuite, vous pouvez soit appuyer sur Enterpour exécuter à nouveau la commande, utiliser la touche fléchée gauche ou droite pour modifier la commande, ou continuer à appuyer sur Control+ Rpour parcourir les autres complétions possibles.

Recherche intelligente inversée


9

Enregistrez-le sous ~ / .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 serait \e\e[Aet contrôle-p \C-p. Vous pouvez voir les séquences d'échappement d'autres combinaisons de touches en appuyant sur control-v.


1
Pour les utilisateurs qui n'en ont pas encore ~/.inputrc, créez-en un.
Sibbs Gambling

Devrait être la réponse acceptée
ripper234

1
"\ e [A": commande introuvable
Louis

2

Une autre chose que vous pouvez faire est de taper !puis la première lettre, et elle trouvera la plus récente. IE: cd ~accessible avec!c


1

C'est une caractéristique du shell. Control-R fera ce que vous décrivez, mais le passage à un shell plus moderne vous apportera bien plus. Jetez un oeil à Z-shell (zsh), il y a un peu de courbe d'apprentissage, mais il est très puissant.


Je pense que vous voulez dire Control-R.
jmk

1

zsh exécutera les commandes exactement comme dans votre exemple. Vous n'avez même rien d'autre à faire que de l'utiliser pour votre shell.


0

Ajoutez-les à votre .cshrc (si vous utilisez tcsh) -

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

Ensuite, faites source ~ / .cshrc pour obtenir exactement les fonctionnalités que vous décrivez.

Je ne sais pas s'il existe un équivalent .profile.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.