10数行のコピペだけで素早く最低限のfish環境を整えるためのメモです。
具体的には、fish+fisher+Theme+Z+fzfをインストールして使えるようにします。
Ubuntu20.04で確認していますが、Ubuntu18.04も同じと思います。
変更履歴
・2021/01/23 「Themeとプラグインを入れて整える」に「historyでpecoを起動」を追加
・2021/02/18 変数回りの誤り訂正等
背景
一時的に普段と違う環境で作業することになった場合など、初めのうちは時間効率など気にしてbashで頑張ろうとするのですが、数日後に結局我慢できずにそこそこ時間をかけてfish環境を整えてしまうので、自分用のメモとして残すことにしました。これで初日からfishでイキりコンソールを使えます。
#fishシェルをインストール
公式 のまま
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish
デフォルトシェルをfishへ
sudo usermod -s /usr/bin/fish <username>
これで一応使い始めることができます。
中間補完も使えます。
#Themeとプラグインを入れて整える
# パッケージマネージャ(fisherとoh-my-fish)をインストール
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
curl -L https://get.oh-my.fish | fish
# テーマをインストール
# fisher install simnalamburt/shellder
# simnalamburt/shellderがインストールできなくなっていたため、oh-my-fish/bobthefishに変更(2022/2/5)
install oh-my-fish/theme-bobthefish
# フォルダ移動を便利に(> z [TAB]で履歴へジャンプ)
fisher install jethrokuan/z
# コマンド履歴(historyでpecoを起動)
sudo apt install peco
fisher install oh-my-fish/plugin-peco
abbr -a history peco_select_history
# fzfで曖昧検索を超絶便利に
sudo apt install -y fzf
sudo apt install -y bat
sudo apt install -y fd-find
alias fd='fdfind' && funcsave fd
alias bat='batcat' && funcsave bat
# 執筆時に使っていたPatricF1/fzf.fishが使えなくなっていたためjethrokuan/fzfに変更(2022/2/5)
# fisher install PatrickF1/fzf.fish
fisher install jethrokuan/fzf
インストールは以上で完了です。
(ターミナルが文字化けする場合は、解説/補足:フォントを入れるを参照してください)
#解説/補足
以下はインストール後に有益かもしれない補足情報です。
##Pathの追加
set -U fish_user_paths <追加するpath> $fish_user_paths
##環境変数の操作
環境変数を設定する
設定ファイルに書かなくても永続化されます。
永続化するにはファイルに書くか、用途が少し違いますがユニバーサル変数として設定する必要があります。
set -x <環境変数名> <値>
環境変数を削除する
set -e <環境変数名>
ユニバーサル変数を設定する
ユニバーサル変数は他のfishセッションからも参照可能で、永続化します。
set -U <変数名> <値>
##エイリアスの設定と永続化
alias <新しい名前>='<元のコマンド>' && funcsave <新しい名前>
##展開エイリアスの追加
コマンドに別名を付ける機能ですが、エイリアスと違いヒストリには元のコマンドで記録されます。複数人で運用するときなどに混乱しなくて良いです。
abbr -a <新しい名前> <元のコマンド>
##themeを探す
本記事でインストールしているのは次のテーマです。
Gitのstatusが一目でわかって便利です。
##Fontを入れる
本記事のshellderを含む、Fishのテーマの多くが絵文字フォントを利用しています。文字化けする場合は利用しているOSに次のサイトにあるフォントなどをインストールして、ターミナルソフトのフォント設定を変更する必要があります。
私はUbuntu Monoを入れています。
##Zの使い方
ターミナルで「z+[SPACE]+[TAB]」と打つと、フォルダの移動先候補が現れます。
複数のフォルダを行ったり来たりするのが楽になります。
z+[SPACE]+[TAB]
##fzfの使い方
とりあいず、ホームディレクトリで「CTRL + f」を押してみましょう、フォルダやファイルをランチャー形式で選べる画面が表示されると思います。
続いて、普段はファイル名補完などで「TAB」キーを押すタイミングで「CTRL+f」を押してみましょう(例えば「vi [CTRL+f]」など)。補完候補がランチャー形式で表示されます。右ペインにファイルのプレビューが表示さるなど便利です。
また、CTRL+rでコマンド履歴が表示されます。
リストが表示されるだけのfish標準のhistoryコマンドと違い、上下キーや「CTRL+p」「CTRL+n」でカーソル移動して履歴を再実行できるので便利です。
最後に
これまでもドットファイル運用やAnsibleのルールブックなど色々ため込んできましたが、ケース対応が煩雑で結局インストール方法をネットで検索している自分がいます。この記事で卒業できると良いのですが。