Linuxで期待されるように、Ubuntuのターミナルは大文字と小文字を区別する自動補完を使用します。
しかし、代わりに大文字と小文字を区別しない名前を使用すると、名前を開始するときに正確である必要がなくなり、おそらく追加の誤検知の価値があると思います。この動作を変更することは可能ですか?
Linuxで期待されるように、Ubuntuのターミナルは大文字と小文字を区別する自動補完を使用します。
しかし、代わりに大文字と小文字を区別しない名前を使用すると、名前を開始するときに正確である必要がなくなり、おそらく追加の誤検知の価値があると思います。この動作を変更することは可能ですか?
回答:
するためにはbash
、現在のユーザーへのために、大文字と小文字を区別しません:
ターミナルで次のシェルスクリプトを実行します。
# If ~/.inputrc doesn't exist yet: First include the original /etc/inputrc
# so it won't get overriden
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
# Add shell-option to ~/.inputrc to enable case-insensitive tab completion
echo 'set completion-ignore-case On' >> ~/.inputrc
新しいシェルを開始します(ターミナルを再度開きます)。
システム全体に変更を加えるには:
# add option to /etc/inputrc to enable case-insensitive tab completion for all users
echo 'set completion-ignore-case On' >> /etc/inputrc
# you may have to use this instead if you are not a superuser:
echo 'set completion-ignore-case On' | sudo tee -a /etc/inputrc
詳細については、を参照してくださいman bash
。はい、それは長いページですが、bashはやや複雑なプログラムであり、「大文字と小文字を区別しない」ためにそのページを検索する場合は、関連するセクションに移動します。通常、bashは一度に1つのオプションまたはbashスクリプトを1つずつ学習し、すべてのニュアンスを習得するには長い時間がかかります。関心は異なる場合があります。
>>
より安全>
でしょうか?
$include /etc/inputrc
とset completion-ignore-case on
あなたの〜..inputrcファイルにする必要があります。
ターミナルを開き、次のコマンドを入力します。
echo set completion-ignore-case on | sudo tee -a /etc/inputrc
パスワードを入力する。ターミナルを再起動します。
大文字小文字を区別せずに削除したい場合は、set completion-ignore-case
行を削除して/ etc / inputrcファイルを編集してください。
それで全部です。
私はこの質問が非常に古いことを知っていますが、何かを逃さない限り、bashを使用している場合は非常に簡単な解決策があると思います。
echo "bind 'set completion-ignore-case on'" >> ~/.bashrc
または、お好みのテキストエディターを使用して行を追加します。bashセッションを再起動してお楽しみください。
~/.inputrc
readlineによって読み取られます。これは、bashがこの補完を提供するために使用するものです。Readlineは他のプログラムでも使用されるため、一般的にこれを設定するには~/.inputrc
、提案されているように、受け入れられた答えの方が良いでしょう。
bind 'set completion-ignore-case on'
おくべき唯一のことは、新しい行に行くべきです.bashrc
これを行うには、GNU readlineの構成変数を設定します。これは、対話型シェルで入力を処理するものです。
必要な変数はcompletion-ignore-case
であり、bashセッションで直接設定できます:
bind "set completion-ignore-case on"
すべてのユーザーに対して有効にするために、ユーザーの~/.inputrc
ファイルまたはシステム/etc/inputrc
に配置することにより、将来のすべてのbashセッションに対して有効にすることができます。これはreadlineの初期化ファイルです。
ただし~/.inputrc
、作成すると、システムコピーが上書きされることに注意してください。(私にとって、これはCtrl-Left
/ などのいくつかのキーマッピングを失う原因となりましたRight
。/etc/inputrc
ファイルを熟読することでどのマッピングを確認できます。)
この問題を修正する方法は、行$include /etc/inputrc
をの先頭に置くことです~/.inputrc
。
$include /etc/inputrc
set completion-ignore-case on
変更を適用するには、bashを再起動するか、inputrcをリロードします(例:、Ctrl+xなど)Ctrl+r。
readlineとinputrcの詳細については、man bash
およびを参照してくださいman 3 readline
。