Bashタブを大文字と小文字を区別せずに完了する方法はありますか?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Mac OS X 10.6を使用しています
Bashタブを大文字と小文字を区別せずに完了する方法はありますか?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Mac OS X 10.6を使用しています
回答:
テキストを更新し/etc/inputrc
て含める
completion-ignore-caseをオンに設定します
次に、を使用^X ^R
して構成を再読み込みします。
^X ^R
再読み込みするにはinputrc
bind "set completion-ignore-case on"
コマンドラインから実行できます。なぜなら、そのターミナルセッションのみ
後知恵を活用して再構築し、[.]inputrc
vsと.bash_profile
。彼の助けのため
にアンダースコア_dに帽子の先端。
注: Bashのコマンドライン編集は、Readlineライブラリによって提供されます。それをカスタマイズするのは簡単ではありませんが、学ぶ価値は十分にあります。その機能には、定義済みのテキストスニペットを挿入するためのカスタムキーボードショートカットを定義する機能が含まれます-Bashリファレンスマニュアルのコマンドライン編集を参照してください
しつこくバッシュでタブ補完の大文字と小文字を区別しないを行います。
オプションA:既にお持ちの場合:
/etc/inputrc
ファイル(システム全体に適用、変更が必要ですsudo
) および/または~/.inputrc
ファイル(ユーザー固有)
および/または
readlineライブラリを大幅にカスタマイズすることを計画している、および/またはスクリプトが呼び出すときにもカスタマイズを効果的にしたい場合read -e
:
行を追加
set completion-ignore-case on
いずれかにあなたが設定をするために有効であることがしたいかに応じて、ファイルのすべてのユーザーまたは現在のユーザー(必要な場合は、ファイルを作成します)。
ファイル名とディレクトリ名の補完を簡単にする関連コマンドは次のとおりです。
set show-all-if-ambiguous on
これにより、複数の一致がある場合にTabキーを2回押す必要がなくなります。
オプションB:または、Readlineコマンドを~/.bash_profile
OS X(または~/.bashrc
Linux)のユーザー固有のファイルに追加するには、それらを組み込み引数に単一の引数として渡します。bind
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
注bind
のコマンドは、~/.bash_profile
/ ~/.bashrc
のいずれかの同等のコマンドよりも優先されます/etc/inputrc
か~/.inputrc
。
上記のように、この方法で定義されたReadline構成は、ユーザー入力を読み取るためのReadlineサポートをアクティブにするために呼び出すスクリプトでは有効になりません。read -e
show-all-if-ambiguous
。しかし、あなたが「代替として」と言うのでbind
、inputrc
ファイルがそれを不必要にすると思われる場合、実際にを介してこれを行うことに利点はありますか?
inputrc
では、どちらもありませんでしたが、幸いにも~/.inputrc
、これらに加えて、他の本当に便利なディレクティブを作成して追加しました。すべての読者/etc/inputrc
が他のユーザーに影響することを知っていると仮定していると思います(後者が影響を受ける設定をオーバーライドしない限り)。警告に言及している間;)
すべてのユーザーの構成の変更を回避し、ルート権限を回避するには、次を使用します。
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
次に、再ログインするか、〜/ .inputrcをリロードします
/etc/inputrc
または~/.inputrc
またはで指定されたファイルINPUTRC
が唯一の場所です。Bashプロンプトでそれを入力しても機能しません。