fishをインストールしたら最初にカスタマイズしたくなるのがプロンプトですよね。
fishのプロンプトを変更するに
- ブラウザで設定する
- コマンドラインから設定する
- エディタで設定する
の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)
とするだけです。
「$」の後のスペースは
echo -n "$suffix "
の行のsuffixの後に出力されています。
わからなくなったら、fish_prompt.fishを削除してしまえば、デフォルトに戻ります。
あるいはコマンドラインから
fish_config
で選び直してから、ふたたびカスタマイズすれば簡単です。
コメント