【发布时间】:2016-08-09 06:36:42
【问题描述】:
我在 bash 中工作时最大的烦恼之一是命令完成长期中断。 有数百个编程命令完成,每天都在编写更多,一些由发行版(我目前主要使用 ubuntu linux)或上游编写, 还有一些来自我公司的人。不可避免的是,在任何给定时间,其中数十个都坏了。我接受。
我不接受的是,当命令完成中断导致我无法完成文件名完成时。 文件名完成对我的工作效率至关重要;当我无法访问它时,这对我的工作流程来说非常痛苦和破坏。
有一段时间,我只是禁用了所有命令完成,因为我判断 可靠的文件名完成对我来说比价值更重要 所有其他命令完成的组合。
但是...然后我决定再试一次,而不是禁用 所有这些,我将我知道要破坏的那些都列入黑名单,在我的 .bashrc 中:
#
# Blacklist for known broken command completions
#
# Command completions prevent vim'ing .jpg files!? Not ok.
complete -r vi
complete -r vim
complete -r view
complete -r google-chrome # google-chrome ./myFil<tab>
# The rest of these are gratuitous strong evil magic
# that can't be killed by "complete -r",
# so stronger good magic "complete -F _minimal" is necessary instead.
complete -F _minimal ci # ci -l ./java<tab> when ./javacpp and ./javarenumber both exist but only javarenumber has been previously checked in
complete -F _minimal alias # alias pppp ~/<tab>
黑名单对我有用,在大多数情况下, except 在我第一次发现另一个命令完成的那个可怕的时刻 坏了,当我正在尝试快速完成文件名时。 那时我需要某种“在紧急情况下打破玻璃”的覆盖机制。
我要求的是以下之一:
- (a) 一种仅将键绑定到文件名完成的方法,绕过 可编程命令完成
- (b) 一种将键绑定到 暂时禁用当前的可编程命令完成 我部分输入的命令
- (c) 其他一些聪明的 目前我完成文件名的非侵入性方式 发现它被损坏的可编程命令隐藏 完成。
【问题讨论】:
标签: bash tab-completion bash-completion