Deshabilitar la finalización de la pestaña bash


19

¿Es posible desactivar el autocompletado de bash al presionar la pestaña?

La razón por la que quiero hacer esto es que a menudo pego el código de un editor donde uso el carácter de tabulación en lugar de varios espacios para la sangría, en mi terminal.

Y no, no puedes convencerme de que use espacios en lugar de pestañas.


En zsh, la tecla Tab inserta una pestaña si la presiona al comienzo de una línea (antes de cualquier carácter que no sea un espacio en blanco). No creo que bash pueda programarse para eso (puede vincular una tecla a una función bash, pero AFAIK no puede activar la finalización de esa función bash).
Gilles 'SO- deja de ser malvado'

Respuestas:


16

poner

 set disable-completion on

conecta ~/.inputrcy reinicia tu shell. deshabilitará la finalización en absoluto.


aunque no solo en bash ...
yrk

8
Para que solo afecte a Bash, en lugar de incluir esa línea en su ~/.inputrcarchivo, agregue esto al archivo de inicio de shell apropiado:bind 'set disable-completion on'
pausa hasta nuevo aviso.

1
Lo que dijo Dennis, y el archivo de inicio apropiado es ~/.bashrc(si no toma en shells de inicio de sesión, agréguelo source ~/.bashrca ~/.bash_profile).
Gilles 'SO- deja de ser malvado'

6

Para deshabilitar la finalización de la pestaña Bash solo temporalmente, puede iniciar un Bash con la --noeditingopción:

alias noed='bash --noediting'

6

La solución de Dennis

bind 'set disable-completion on'

También se puede hacer sobre la marcha en Bash. No necesita ponerlo en .bashrc.

La solución de Musta (bash --noediting) funciona pero también deshabilita la edición de la línea de comandos.

Otra forma es

bind -u complete

(enlace de clave no establecido asociado con 'completo')

http://www.gnu.org/software/bash/manual/bashref.html , 4.2 Comandos incorporados de Bash.


La respuesta correcta a la pregunta "¿Cómo desactivo temporalmente la finalización de Bash?" Esto ayuda mucho cuando navega por un directorio con más de 81,000 archivos y ni siquiera puede hacer Ctrl + C sin esperar dos minutos para que Bash regrese con un mensaje.
TheDudeAbides
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.