bashをよりTABフレンドリーにする方法はありますか?


31

Macとcygwinシェルの両方でbashを使用しています。全体として、私は非常に満足しています。

しかし、私の1つの不満は、そのTAB補完がWindowsコマンドラインTAB補完ほど良くないということです。

たとえば、同じプレフィックスのファイルが2つある場合、TABを完了しようとするとbashがビープ音を鳴らします。TABを釘付けし続けると、最終的には潜在的なファイルのリストが表示されます。

私は、Windowsがコマンドラインで潜在的なファイルを循環する方法を間違いなく好みます。

この点でbashをWindowsコマンドラインと同様に動作させる方法はありますか?

存在しない場合(シェルを切り替えたくない)、bashのTAB補完について何かが足りませんか?それを使用するより効率的な方法はありますか?

回答:


42

「可能な補完のサイクル」動作を取得するには、次を.bashrcファイルの適切な場所にコピーします。

[[ $- = *i* ]] && bind TAB:menu-complete

また、bash-completionは、単なるパス名補完の他に、多くの追加の補完を提供します。たとえば、menu-completeはGitのbash-completionモジュールで正常に機能し、コマンド名、オプション名などを補完します。


OSx端末でこれを行う手順は何ですか?
アレックス

2
@Alex:.bashrc指定した行が含まれるように、ホームディレクトリ内のファイルを編集します。あなたの場合は.bash_profile(同じディレクトリにある)ファイルには、のような行を持っていないsource ~/.bashrc、あなたはまた、そのような行が含まれるように、それを編集する必要があります。この設定は、新しいターミナルウィンドウでアクティブになります。優先エディターがない場合は、コマンドを使用してTextEditでファイルを開くことができますopen -e ~/.bashrc。ファイルがまだ存在しない場合は、まずコマンド(たとえば)で作成する必要がありますtouch ~/.bashrc
クリスジョンセン

1
@Alex、Bashは、10.7(Lion)を含む10.3以降のデフォルトのシェルです。最初にecho $SHELL。これが、ユーザーアカウント用に選択されたシェルになります。それがあなたの望むものではない場合、あなたはあなたのシェルを変更する必要がありますchpass -s /bin/bash(またはあなたが望むシェル)。$ SHELLに問題がない場合は、ターミナル>設定>スタートアップ>シェルで開く:およびターミナル>設定>設定>プロファイル>シェル>スタートアップをチェックして、デフォルトのユーザーシェルがカスタムコマンドでオーバーライドされているかどうかを確認します。
クリスページ

5
Shift + Tabを使用して1つのオプションに戻るために何をバインドする必要があるか、誰にもわかりませんか?
PPP

3
あなたの@ppp .bashrcbind '"\e[Z":menu-complete-backward'
保管庫
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.