0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

fishのプロンプトをOSで良い感じに切り替える

Posted at

osflavor.png

はじめに

ここ数年、fishを好んで使っています。zshのように色々設定しなくても、デフォルトで良い感じに設定されているところが良いです。

fishを使うOSは、各種Linux、macOS、最近だとWSL1/2など、色々な環境があると思いますが、シェルを使っていると、自分がどの環境にいるのかふと見失うことがあります(私だけ?)。sshなどリモートログインしていると尚更。

自分の場所を示すuser@hostnameのようなプロンプトもよく使われますが、文字列だと認識に時間がかかるので、できるだけ無意識に自分の環境を認識できるように各種OS風にプロンプトを切り替えるプラグインを作りました。

使い方

パッケージ管理ツールのfisherを使います。

$ fisher install eholic/osflavor

インストール後は、(__osflavor)fish_prompt.fishに書くだけです。

function fish_prompt
    # エラーステータスをプロンプト に反映させたい場合
    set -g __osflavor_last_status $status  # 関数の先頭に書くこと
    # いろんな設定
    echo -n -s (__osflavor) (__fish_git_prompt " %s") ' '
end

高度な設定

osflavorの各OSごとのプロンプトは、fishのグローバル変数__osflavor_dist_<name>で定義されており、<name>uname -aに含まれているかどうかで、プロンプト切り替えています。デフォルト定義を変更したい場合や、osflavor未定義のOSのプロンプトを設定したい場合は、config.fish__osflavor_dist_<name>を定義することで自由に設定できます。
詳細は、eholic/osflavorを見てください。

おわりに

初めてfishのプラグインを作りましたが、fishの関数やパッケージ管理ツールが良くできていて、思ったより気軽にコーディングできました。もっとfishユーザやプラグインが増えてきて、開発が活発になると良いなと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?