fishのプロンプトを変更する3種類の方法

fishをインストールしたら最初にいじくりたくなるのがプロンプトですよね。

fishのプロンプトの変更は

  1. ブラウザ
  2. コマンドライン
  3. エディタ

の3種類あります。

ブラウザでfishのプロンプトを変更する

foo@bar ~> fish_config

とするとブラウザにfishの設定画面が開きます。

上のタブから「Prompt」でプロンプトのサンプルを表示させ、好きなデザインを選んだら「Set Prompt」を押せば反映されます。

押しても反応しないようなら、いったん別のタブに切り替えてからPromptタブに戻るか、コマンドラインからもういちどfish_configをしてみてください。

ブラウザに表示されているデザインが①好みのデザインがない、②ブラウザから選んだデザイを少しだけ手直ししたい、場合は後で説明するように設定ファイルを直接開いて修正できます。

コマンドラインからfishのプロンプトを変更する

ターミナルのコマンドラインから、

foo@bar~> function fish_prompt
            echo "hogehoge> "
end
hogehoge>

のようにプロンプトが変更されます。

ホスト名やカレントディレクトリを表示するには

  • prompt_hostname:ホスト名
  • prompt_pwd:カレントディレクトリ名
  • $USER:環境変数のユーザ名

を使います。

> function fish_prompt
          printf '%s@%s %s > ' $USER (prompt_hostname) (prompt_pwd)
  end
foo@bar ~ >

この設定はいまのfishが終了すれば残りません。

コマンドラインから定義した設定をを永続させるには「funcsave」を使います。

foo@bar > funcsave fish_prompt

とします。

エディタでfishのプロンプトを変更する

ブラウザやコマンドラインで変更された設定は

.config/fish/functions/fish_prompt.fish

にあります。

fishインストールした直後はこのファイルはないので、新規に作成してください。

fish_configで生成されたファイルは行数が長いですが、いろいろな場合分けなどが多いので、通常の状態でのプロンプトのデザインは最後のほうにあります。

たとえば、

foo@bar~/foo $

の「$」前のスペースを取り除くなら

fish_prompt.fishの84行目あたりの

printf '%s ' (__fish_vcs_prompt)

の%sの後のスペースを除けばいいので、

printf '%s' (__fish_vcs_prompt)

とするだけです。

 

わからなくなったら、fish_prompt.fishを削除してしまえば、デフォルトに戻ります。

あるいはコマンドラインから

fish_config

で選び直せばいいですね。

 

コメント