禁用 bash Tab 补全

禁用 bash Tab 补全

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

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

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

答案1

 set disable-completion on

输入字符串~/.inputrc并重新启动 shell。它将完全禁用完成。

答案2

丹尼斯的解决方案

bind 'set disable-completion on'

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

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

另一种方法是

bind -u complete

(取消设置与“完整”关联的键绑定)

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

答案3

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

alias noed='bash --noediting'

答案4

有端子配套括号内的粘贴(即大多数现代终端)您可以运行bind 'set enable-bracketed-paste on'以跳过粘贴代码的读取行处理:

user@host:~$ bind 'set enable-bracketed-paste off'
user@host:~$ STR="Foo
> 
Display all 2376 possibilities? (y or n)^C
user@host:~$ bind 'set enable-bracketed-paste on' 
user@host:~$ STR="Foo
        Bar"

相关内容