ベストアンサー1
問題%s
はフォーマット指定子がないことですprintf
。%s
引数を文字列に置き換えるようにprintfに指示します。より多くの文字列を追加すると(この場合の新しい呼び出しset_color
)、どこに入れるべきかわからないため、文字列は最後に追加されます。
即時の修正は、より多くの%s
指定子を追加することです。
printf '%s%s@%s%s:%s%s%s$' (set_color green) $USER $hostname (set_color normal) \
(set_color blue) (prompt_pwd) (set_color normal)
しかし、これは少し扱いにくいですが、別々の命令に分割するとより明確になります。
function fish_prompt
set_color green
printf '%s@%s' $USER $hostname
set_color normal
printf ':'
set_color blue
printf '%s' (prompt_pwd)
set_color normal
printf '$ '
end