2016-08-09 20 views
3

bashで作業している私の最大の悪影響の1つは、慢性的に壊れたコマンド補完です。 プログラムのコマンド補完は数多くあり、毎日書かれているものもあれば、ディストリビューション(私は現在、ほとんどがubuntu Linuxを使用しています)またはアップストリームの と私の会社の人々によって書かれたものもあります。いつでも、数十が壊れてしまうことは避けられません。私はそれを受け入れる。壊れたコマンド補完の緊急オーバーライドをbashで行うか?

私が受け入れないのは、コマンドの補完が壊れてファイル名の補完ができない場合です。 ファイル名の補完は私の仕事の効率にとって不可欠です。私がそれにアクセスできない場合、それは私のワークフローにとって非常に悲惨で混乱します。

しばらくの間、私は と信頼できるファイル名補完が他のすべてのコマンド補完の値 よりも重要であると判断したので、すべてのコマンド補完を無効にしました。

しかし...その後、私は彼らに別の試してみることにしましたので、代わりに それらすべてを無効にするので、私は私の.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> 

ブラックリストは、私はすぐに、ファイル名を完了しようとしているの真ん中にいるとき、私は最初に、壊れている別のコマンド完了 を発見し、その恐ろしい瞬間に、ほとんどの部分は、私のため除く に動作します。 そのとき、私はある種の「緊急ブレークガラスの場合」のオーバーライドメカニズムが必要です。

私は何のために求めていることは、次のいずれかです。

  • (A)のみ完了をファイル名にキー/キーをバインドする方法を、 プログラマブルコマンド補完をバイパス
  • (b)のA一時的に、私は部分的に私現時点ではファイル名の補完で取得する
  • (c)は他のいくつかの巧妙な 非侵入的な方法を入力した現在の コマンドのためのプログラム可能なコマンドの補完を無効に にキー/キーをバインドする方法210は、壊れたプログラム可能コマンド の完了によって隠されていることを発見します。

答えて

1

使用Altキー + /。プログラム可能な完了ではなく、ファイル名として完成します。 man bashから

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

ファンタスティック!これは私の人生を大きく改善するでしょう。 –

関連する問題