fish shell では他のシェルと同じように , Ctrl + n, Ctrl + p で行ごとに履歴をたどることができる。これに加えて Alt + ↑, Alt + ↓ で単語ごとの履歴をたどって補完することができる。

例えば git status で変更のあるファイルを一覧し、特定のファイルだけをコミットしたいとする。

git status -sb
# ## master...origin/master
#  M dotconfig/karabiner/karabiner.json
#  M init.sh
# ?? dotconfig/flutter/

いくつか変更があるが init.sh だけをコミットしたい。 git diff で差分確認してから git add を行う。

git diff init.sh
# diff --git a/init.sh b/init.sh
# (snip)

git add init.sh

ここで git add を入力してから Alt + ↑ を押すと init.sh が補完される。 (もう一度押すと diff に変わる)

この例だとファイル名が短いのであまりメリットはないが、長いパスを指定する時などに便利。