LoginSignup
10

More than 1 year has passed since last update.

文化的なfish環境を得る為の最短ルート

Last updated at Posted at 2021-01-15

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が一目でわかって便利です。

simnalamburt/shellder

687474703a2f2f692e696d6775722e636f6d2f785a4a486771382e706e67.png

##Fontを入れる

本記事のshellderを含む、Fishのテーマの多くが絵文字フォントを利用しています。文字化けする場合は利用しているOSに次のサイトにあるフォントなどをインストールして、ターミナルソフトのフォント設定を変更する必要があります。

私はUbuntu Monoを入れています。

##Zの使い方

ターミナルで「z+[SPACE]+[TAB]」と打つと、フォルダの移動先候補が現れます。

複数のフォルダを行ったり来たりするのが楽になります。

z+[SPACE]+[TAB]

##fzfの使い方

とりあいず、ホームディレクトリで「CTRL + f」を押してみましょう、フォルダやファイルをランチャー形式で選べる画面が表示されると思います。

続いて、普段はファイル名補完などで「TAB」キーを押すタイミングで「CTRL+f」を押してみましょう(例えば「vi [CTRL+f]」など)。補完候補がランチャー形式で表示されます。右ペインにファイルのプレビューが表示さるなど便利です。

SnapCrab_NoName_2021-1-15_18-21-8_No-00.png

また、CTRL+rでコマンド履歴が表示されます。
リストが表示されるだけのfish標準のhistoryコマンドと違い、上下キーや「CTRL+p」「CTRL+n」でカーソル移動して履歴を再実行できるので便利です。

最後に

これまでもドットファイル運用やAnsibleのルールブックなど色々ため込んできましたが、ケース対応が煩雑で結局インストール方法をネットで検索している自分がいます。この記事で卒業できると良いのですが。

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
10