bash中破坏命令完成的紧急覆盖?

时间:2016-08-09 06:36:43

标签: bash tab-completion bash-completion

我在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>

在大多数情况下,黑名单对我有用 在我第一次发现另一个命令完成的那个可怕时刻,除了 当我正在尝试快速完成文件名时,它已经坏了。 在那一刻,我需要一些&#34;在紧急情况下突破玻璃&#34;覆盖机制。

我要求的是以下之一:

  • (a)将键/键绑定到文件名完成的方法,绕过 可编程命令完成
  • (b)将键/键绑定到的方法 暂时禁用当前的可编程命令完成 我部分输入的命令
  • (c)其他一些聪明人 我在此刻完成文件名完成的非侵入式方法 发现它被一个破碎的可编程命令隐藏起来 完成。

1 个答案:

答案 0 :(得分:3)

使用 Alt + / 。它以文件名完成,而不是通过可编程完成。

来自man bash

complete-filename (M-/)
  Attempt filename completion on the text before point.