私は魚のシェルが大好きでMacOSでのみ使用しますが、インストールされているのはそれだけなのでbashをどこでも使用します。 2つのシェルの構成ファイルを維持するのに苦労したので、魚の使用をやめ、代わりにbashに戻ることにしました。できるだけ簡単にするには、bashでどの構成オプション/プラグイン/などを使用して、できるだけ魚に近づける必要がありますか?
私が最も見逃しているもの:
bash
を構成するための多くのオプションがあります。次のコマンドを使用して、簡単なコマンド履歴アクセスを提供します:-
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
これらは Up そして Down 矢印を使用して、コマンドラインのカーソルの前の文字で始まるコマンドのコマンド履歴を上下にスキャンします(WindowsのTCCと同様)。
プロンプトに関しては、プロンプトが出力されるたびに実行されるコマンドを置くことができます。私が使う:-
PS1="\`curspos -n>/dev/tty\`\`[ \$BASH_LEVEL != 1 ]&&echo \"[\$BASH_LEVEL]\"\`\\t[\\w/]\\\$ "
これにより、各プロンプトで2つのコマンドが呼び出されます。
curspos
は、カーソルの位置を確認し、最初の列にない場合は新しい行を出力するために私が作成したスクリプトです(不要な空白行に悩まされました)。BASH_LEVEL
が1でない場合、プロンプトの前に角かっこで囲まれたレベルが表示されるので、子シェル(例:[2]15:55:32[~/]$
)。これらはどちらも要件に直接答えるものではありませんが、プロンプト文字列で使用できる能力を示しています。あなたの場合、単にスクリプトまたは関数(gitcheck
など)を先頭に追加して、プロンプトの残りの部分の前に実行することができます。これにより、表示したい情報をプロンプトの一部として目的の形式で出力できます。
最後に、fish
は多くのLinuxディストリビューション(Ubuntuリポジトリなど)で使用できるため、パッケージをインストールできない場合にのみ、これらのbash
カスタマイズを行う必要があるとコメントします。
自動補完に関して、bash
はGNU Readlineを使用して、タブ補完、および履歴のルックアップと補完を提供します。タブ補完は、コマンド名、ファイル、および-補完スクリプトがあります—オプションと引数。 Up または Down 履歴を直線的に移動します。または、検索するには次のように入力します Ctrl + R 覚えているコマンドの任意の部分。 Readlineは、bashがインストールされているほぼすべての場所にインストールされ、特に最近のOSに当てはまります。
Gitの懸念に答えるために、Git自体に プロンプトに色を付ける を実行し、bashシェルなどに対して tab-completion を実行するスクリプトが含まれています。 Git for Windowsをインストールしたとき、それと一緒に配布されたbashプログラムは、これらを自動的に使用するように事前に調理されています。
Bashに慣れている場合は、おそらく Macにgitプロンプトを追加 するのは難しくありません。 BashはPS1
変数の内容からプロンプトを生成します。これにより、任意の関数を実行してプロンプトの一部を生成でき、これらの巧妙なスクリプトを実行できます。他のシェルと同様に、bashは色を生成するために基礎となる端末エミュレーターに依存しています。プロンプトに設定したテキストを端末エミュレータに渡すだけです。適切な ANSIコード をPS1
プロンプトに追加するだけで、カラー出力が得られます。