是否可以在按下 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"