色付きのタブ補完を取得する方法は?


17

ターミナルでタブ補完を使用するときに色付きの出力を取得する方法はありますか?私の色はどこでもいいので、カラーターミナルを正常に有効にしたことを知っています。

Ubuntuでbashを使用する(10.10)。


「タブ補完を使用するときに色付き出力」を指定するにはどうすればよいですか?
-slhck

回答:


21

Bashには、魚やzshにあるように、完了時に出力を色付けする機能はありません。色制御シーケンスを出力する補完関数を書くこともできますが、提案された補完のコピーをカラーコードの有無にかかわらず維持するか、ユーザーが選択を行うときにBashが通常選択を直接使用し、カラーコードが邪魔になります。

これが重要な機能である場合、zshの使用を検討することをお勧めします。

更新

Bash 4.3 readlineは、タブ補完中に実行可能ファイル、ディレクトリなどの異なる色を表示するために、タブ補完の色を有効にする変数を追加します。

colored-stats

今後のBash 4.4のReadlineは、タブ補完中に文字列の一致部分を示す色を有効にする変数を追加します。

colored-completion-prefix

これらの変数の値は、次を使用して表示できます。

bind -v | grep color

それらを設定するには、次のような行を~/.inputrcファイルに追加します。

set colored-stats on

1
@Ryan:ZshはBashと非常に互換性があります。おそらく、切り替えはかなり簡単だと思うでしょう。Bashにはない強力な機能がたくさんあります(または外部ユーティリティを使用する必要があります)。基本的に大幅に異なるものはわずかです。例として、配列インデックスはゼロベースではなく1ベースですが、それに影響する設定があります。ただし、私はzshを時々しか使用しません。
追って通知があるまで一時停止します。

1
@AstroFloyd:Bash Manuaから:「色の定義はLS_COLORS環境変数の値から取得されます。」その変数のためのドキュメントがあり、ここでmanページの設定はないため、LS_COLORS取得する場所を確認し、対応する色の組み合わせを見つけて変更する必要があります。私のシステムでは、man赤・オン・グレーながら、ページ名は、タブが完了しているとき色(と壊れたシンボリックリンクされませんls出力...、
。一時停止は、追って通知があるまで

1
...タブ補完時の有効なシンボリックリンクのような水色です)。
追って通知があるまで一時停止します。

1
@AndyCarlson:とのbind -v | grep color両方set colored-completion-prefix onを表示しset colored-stats onますか?その場合、文字aを入力し、タブを2回押すとどうなりますか?あなたのに設定を追加した場合~/.inputrcが、新しいターミナルを開始していないか、実行されていないre-read-init-file制御-Xコントロール-Rを押すことによって、その後の設定が有効になっていません。
追って通知があるまで一時停止します。

2
@AndyCarlson ctrl-x ctrl-vを押したときにbashプロンプトに出力されるものは何ですか?
追って通知があるまで一時停止します。

3

/unix//a/133866)によると、コマンドオプションと引数の補完色についてはわかりませんが、ファイル名とディレクトリについては、user495470はBash 4.3以降で追加set colored-stats on~/.inputrcて色を付けることができると述べていますあなたが完了しましたls <tab>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.