2010-08-08 10 views
2

Le comportement par défaut de la touche [TAB] dans le shell est de compléter automatiquement automatiquement ou de lister les fichiers dans le répertoire en cours. Comment remplacer ce comportement dans le shell pour certaines applications choisies?Comment modifier le comportement par défaut de la touche [TAB] lors de l'appel d'une application à partir du shell?

Editer: Ce n'est pas lié à l'application utilisée, c'est plutôt l'environnement de shell qui doit être personnalisé! (Merci à Anders Abel pour effacer ce point)

+2

Je pense que vous posez des questions sur l'achèvement personnalisé - voir par exemple http://www.debian-administration.org/article/An_introduction_to_bash_completion_part_2 –

Répondre

1

Si vous souhaitez modifier le comportement lors de la création de la ligne de commande pour démarrer le programme, cela est impossible depuis le programme. À ce stade, votre programme n'est pas encore démarré, c'est donc entièrement à l'interpréteur de commandes comment interpréter [TAB] à ce moment-là. Une fois que votre programme est en cours d'exécution, vous pouvez bien sûr gérer [TAB] comme vous le souhaitez, en utilisant un appel API approprié.

+0

Si vous essayez de taper 'git' et utilisez [TAB] après l'espace, la liste montrera les commandes disponibles pour 'git' au lieu des fichiers. D'autres applications filtrent les types acceptés (par exemple 'gpdf' lists only * .pdf) au lieu de répertorier tous les fichiers. Comment faire des choses similaires? – banx

+2

Il est possible de personnaliser le comportement de bash (je ne savais pas jusqu'à ce que je le mette en place maintenant), voir l'entrée [this] (http://aplawrence.com/Unix/customtab.html) blog. Ceci est une personnalisation de l'environnement bash, pas du programme. –