禁用bash选项卡完成


19

是否可以在按Tab时禁用bash的自动完成功能?

我想这样做的原因是,我经常将编辑器中的代码粘贴到终端中,在该编辑器中,我使用制表符而不是空格来缩进。

不,您不能说服我使用空格而不是制表符。


在zsh中,如果在行的开头(在任何非空白字符之前)按Tab键,则会插入一个Tab键。我不认为可以为bash编程(可以将键绑定到bash函数,但是AFAIK不能从该bash函数触发完成)。
吉尔斯(Gilles)'所以

Answers:


16

 set disable-completion on

输入~/.inputrc并重新启动shell。它将完全禁止完成。


不仅在bash中……
yrk 2012年

8
要使其仅影响Bash,而不是在~/.inputrc文件中包括该行,请将其添加到适当的Shell启动文件中:bind 'set disable-completion on'
已暂停,直到另行通知。

1
丹尼斯(Dennis)所说的,以及合适的启动文件是~/.bashrc(如果它不使用登录shell,则添加source ~/.bashrc~/.bash_profile)。
吉尔斯(Gilles)'所以

6

要仅暂时禁用Bash选项卡完成,可以使用以下--noediting选项启动Bash :

alias noed='bash --noediting'

6

丹尼斯的解决方案

bind 'set disable-completion on'

也可以在Bash中即时完成。您无需将其放在.bashrc中。

Musta的解决方案(bash --noediting)有效,但也禁用了命令行编辑。

另一种方法是

bind -u complete

(与“ complete”相关联的未设置键绑定)

http://www.gnu.org/software/bash/manual/bashref.html,4.2 Bash内置命令。


问题“我如何临时禁用Bash完成?” 的正确答案。当您浏览包含81,000多个文件的目录时,这非常有帮助,甚至在不等待2分钟让Bash出现提示的情况下,甚至无法按Ctrl + C。
TheDudeAbides
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.