【问题标题】:emergency override of broken command completions in bash?在bash中紧急覆盖损坏的命令完成?
【发布时间】: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


    【解决方案1】:

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

    来自man bash

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

    【讨论】:

    • 太棒了!这将极大地改善我的生活。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2011-06-04
    • 1970-01-01
    相关资源
    最近更新 更多