Désactiver la complétion de l'onglet bash

19

Est-il possible de désactiver la saisie semi-automatique de bash en appuyant sur tab?

La raison pour laquelle je veux le faire est que je colle souvent du code à partir d'un éditeur où j'utilise le caractère de tabulation au lieu d'un certain nombre d'espaces d'indentation, dans mon terminal.

Et non, vous ne pouvez pas me convaincre d'utiliser des espaces au lieu des tabulations.

Tyilo
la source
Dans zsh, la touche Tab insère un onglet si vous appuyez dessus au début d'une ligne (avant tout caractère non blanc). Je ne pense pas que bash puisse être programmé pour cela (vous pouvez lier une clé à une fonction bash, mais AFAIK vous ne pouvez pas déclencher une complétion à partir de cette fonction bash).
Gilles 'SO- arrête d'être méchant'

Réponses:

16

mettre

 set disable-completion on

chaîne ~/.inputrcet redémarrez votre shell. cela désactivera complètement l'achèvement.

se ruer
la source
pas seulement à bash ...
yrk
8
Pour que cela n'affecte que Bash, au lieu d'inclure cette ligne dans votre ~/.inputrcfichier, ajoutez ceci au fichier de démarrage du shell approprié:bind 'set disable-completion on'
pause jusqu'à nouvel ordre.
1
Ce que Dennis a dit, et le fichier de démarrage approprié est ~/.bashrc(s'il n'accepte pas les shells de connexion, ajoutez- source ~/.bashrcle ~/.bash_profile).
Gilles 'SO- arrête d'être méchant'
6

Pour désactiver l'achèvement de l'onglet Bash uniquement temporairement, vous pouvez démarrer un Bash avec l' --noeditingoption:

alias noed='bash --noediting'
musta
la source
6

La solution de Dennis

bind 'set disable-completion on'

peut être fait à la volée dans Bash également. Vous n'avez pas besoin de le mettre en .bashrc.

La solution de Musta (bash --noediting) fonctionne mais désactive également l'édition en ligne de commande.

Une autre façon est

bind -u complete

(liaison de clé non définie associée à «complète»)

http://www.gnu.org/software/bash/manual/bashref.html , 4.2 Commandes intégrées Bash.

thomas tulinsky
la source
La bonne réponse à la question "comment désactiver temporairement l' achèvement de Bash?" Cela aide beaucoup lorsque vous naviguez dans un répertoire contenant plus de 81 000 fichiers et que vous ne pouvez même pas Ctrl + C sans attendre deux minutes pour que Bash revienne avec une invite.
TheDudeAbides