僕のmacの標準搭載されているshellはbash(現在はzshが搭載されているらしい)なのですが、知り合いにfishというshellがとても使いやすいということを教えてもらったので、導入方法と使い方を記事にまとめます!
目次
目的
①fishのshellを使って、ディレクトリの検索ができるようになる。
②コマンドヒストリーから検索が簡単にできる。
(前提、環境)
mac
macOS Mojave 10.14.5
Homebrew 2.2.2
はじめに
公式
公式ページ
https://fishshell.com/
fish tutorial
https://fishshell.com/docs/current/tutorial.html
参考記事
導入手順
導入するもの一覧
- fish
- peco
fishのinstall
まずはHomebrewでfishをインストールします。
Homebrewを使っていない方はHomebrewを入れてから試してください!
brew install fish
(番外編)fishでrailsのコマンドを使えるようにする
下記のコマンドを打たないとrailsでコマンドが打てないので僕はconfigのなかに追記します。
echo 'rbenv init - |source' >> ~/.config/fish/config.fish
pecoのinstall
こちらもまたHomebrewでinstallします!
brew install peco
検索のためのスクリプト
vimを使ってconfigの設定を書き換えます。
vi ~/.config/fish/config.fish
僕はホームディレクトリ配下のprojectsの中に主要なアプリを入れているので/Users/[ユーザ名]/projects/という表記にしています。
適宜書き換えてください。
'rbenv init - |source'
function peco_select_history_order
if test (count $argv) = 0
set peco_flags --layout=top-down
else
set peco_flags --layout=bottom-up --query "$argv"
end
history|peco $peco_flags|read foo
if [ $foo ]
commandline $foo
else
commandline ''
end
end
# ディレクトリを検索できるようになる
function peco_workspace_change
# 以下のパスを変更する
ls /Users/[ユーザ名]/projects/ | peco | read foo
if [ $foo ]
# 以下のパスを変更する
commandline "cd /Users/[ユーザ名]/projects/$foo"
else
commandline ''
end
commandline -f repaint
end
# 下記を書くことで
# control + rで検索
# control + f でディレクトリ検索ができるようになる。
function fish_user_key_bindings
bind \cr peco_select_history_order
bind \cf peco_workspace_change
end
結果
検索が爆速になる。
終わりに
fishについては触りたてのため、ちょっとずつ知識を増やしていきたいと思います!