如何解决我如何获得bash制表符补全以在参数开头停止转义glob通配符?
当我尝试使用bash中的制表符补全来表示以?
或*
开头的文件glob模式时,我会按预期获得完成选项列表,但随后修改了我的命令提示符逃脱glob特殊字符。
例如:
$ ls *.txt # tab-complete instead of enter
bar.txt fib.txt foo.txt
$ ls \*.txt # Now my '*' is escaped
并且:
$ ls ???.txt # tab-complete
bar.txt fib.txt foo.txt
$ ls \?\?\?.txt # please stop
当触发制表符完成时,如何停止转义特殊字符?
当*
或?
特殊字符不在完成模式的开头时,不会发生这种情况:
$ ls f*.txt # tab-complete
fib.txt foo.txt
$ ls f*.txt # my prompt doesn't change. This is what I want.
此问题似乎非常类似于:
- bash tabbing for autocompletion escapes $
- https://askubuntu.com/questions/70750/how-to-get-bash-to-stop-escaping-during-tab-completion
有关我的设置的一些信息:
- 我的
~/.inputrc
包含(几乎排他)set editing-mode vi
和set show-all-if-unmodified on
。 - 我正在使用
bash
版本5.0.17(1)-发行版(x86_64-pc-linux-gnu)。 - 我卸载了
bash-completion
,因为它导致了制表符补全的另一个问题。 (制表符补全更改了我的提示,使之使用第一个匹配项,而不是向我显示选项。我想到了从https://unix.stackexchange.com/a/278449/439902卸载它的想法。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。