【Mac】ターミナル環境を整える
今回使用する環境
- iTerm2
- macOS Monterey12.6
- zsh 5.8.1
Homebrewのインストール
HomebrewとはmacOS用のパッケージ管理ツールです。
まず最初にインストールを済ませておきます。
使用することで様々なパッケージをインストールすることができます。
インストール方法は、公式サイトのインストールと書いてあるところのスクリプトをコピーしてターミナルで実行します。
インストールされているかの確認
こちらのコマンドを実行します。
brew -v
バージョンが表示されれば、無事インストールできています。
Stershipの導入
ターミナルの見た目をおしゃれにカスタマイズすることができます。
フォントのinstall
公式ではFira Code Nerd Fontを使用しているので、それに合わせておきます。
Fira Code Nerd Fontはこちらからダウンロードできます。
ターミナルのフォント設定
iTerm2>Preferences
Profile>Textの中のFontをFira Code Nerd Fontに変更
Stershipのインストール
こちらのコマンドを実行します。
brew install starship
~/.zshrc の最後に以下を追記して完了です。
eval "$(starship init zsh)"
自分は設定で時刻、メモリの使用量や絵文字などを入れたりしています。
細かいカスタマイズ方法は公式サイトが日本語ですごく分かりやすいので、おすすめです。
Zshのオプションを有効化する
オプションを有効化するにはsetopt <オプション名>
という形で追記してあげるだけです。
自分は下記の設定を追加しています。
他にもさまざまな設定がありますので、どんなオプションがあるのかを調べながら、自分が使いやすいようにカスタマイズしていくのがよいかと思います。
# ビープ音の停止
setopt no_beep
# ビープ音の停止(補完時)
setopt nolistbeep
#cd時にディレクトリスタックにpushdする
setopt auto_pushd
#pushdしたとき、ディレクトリがすでにスタックに含まれていればスタックに追加しない
setopt pushd_ignore_dups
#一致するディレクトリにcdなしで移動する
setopt auto_cd
#直前と同じコマンドは履歴に追加しない
setopt hist_ignore_dups
#同時に起動したzshの間で履歴を共有する
setopt share_history
#即座に履歴を保存する
setopt inc_append_history
Zinitのインストール
プラグインマネージャーです。
zshのプラグインを管理するツールになります。
こちらのコマンドを実行します。
~/.local/share/zinit/zinit.gitにZinitがインストールされます。
sh -c "$(curl -fsSL https://git.io/zinit-install)"
source ~/.zshrc
zinit self-update
.zshrcに以下が追加されていることが確認できます。
#Added by Zinit's installer
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit"
command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \
print -P "%F{33} %F{34}Installation successful.%f%b" || \
print -P "%F{160} The clone has failed.%f%b"
fi
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
#End of Zinit's installer chunk
プラグインを追加する
zsh-syntax-highlightingをインストール
コマンドに色付けすることができます。
こちらを.zshrcに追記します。
# シンタックスハイライト
zinit light zsh-users/zsh-syntax-highlighting
設定後、コマンドに色がついていることが確認できます。(brewコマンドに色がついている)
zsh-autosuggestionsをインストール
履歴からコマンド候補を表示してくれます。
例えばyarnコマンドを打つだけで、次のdevという候補が表示されていることが確認できます。
こちらを.zshrcに追記します。
#入力補完
zinit light zsh-users/zsh-autosuggestions
jqコマンド
JSONデータから値を抽出、変換、集計などをしてくれるJSON用コマンドです。
こちらのコマンドを実行します。
brew install jq
バージョンが表示されていればインストールができています。
jq --version
jsonファイル内のscriptを確認してみます。
package.jsonが存在する特定のディレクトリで以下のコマンドを実行する。
cat package.json| jq .scripts
package.jsonのscriptがターミナル上から確認することができました。
treeコマンド
ディレクトリ構造をツリー形式で表示して確認ができるようになります。
インストール
brew install tree
実行してみます。
(-L 2のオプションについては、下の記事などを参考にしていただければと思います。)
tree -L 2
ディレクトリ構造をツリー形式で表示することができるようになりました。
batコマンド
batはRustで実装されたcatの代替コマンドです。
batを使用することで、行番号とシンタックスハイライトをつけてファイルを表示することができます。
インストール
brew install bat
package.jsonを表示してみる
bat package.json
行番号とシンタックスハイライトがついていることが確認できます。
batをcatのaliasに設定する
ついでにcatを実行するとbatが実行されるようにしておきます。
.zshrcに以下を追記します。
alias cat=bat
最後に、 ~/.zshrc を再読み込みしてあげます。
source ~/.zshrc
その後、catをコマンドでbatが実行されていることが確認できたら完了です。
ghq
ghqを使用することで、リポジトリを一元管理することができます。
インストール
brew install ghq
git cloneではなく、ghq getでcloneします。
ghq get <リポジトリのURL>
実行後、homeディレクトリ直下の/ghqの勝手にルールをもって配置されていることが確認できます。
整理されたことによって、cloneしてきたものがどこにあるのか分からなくなることを防げます。
使用できるコマンド
コマンド | 内容 |
---|---|
ghq get | 引数か標準入力経由でtargetを受け取り、そのリポジトリを取得する。 |
ghq list | ローカルリポジトリの全件を一覧表示 |
fzf
ターミナルからあいまい検索を行えるようにするツールです。
brew install fzf
使い方は、コマンドの標準出力をパイプで渡すだけで,それらに対してあいまい検索を行うことができるようになります。
あいまい検索を行いたいディレクトリでこちらのコマンドを実行してみると動作することが確認できます。
find . | fzf
ghqとfzfを組み合わせる
先ほど紹介をしたghqで管理しているリポジトリを、あいまい検索ですぐ探し出せるように組み合わせることにより、作業効率が上がります。
.zshrcに関数を定義する。
#ghqの中身をあいまい検索する関数
$ fg() {
declare -r REPO_NAME="$(ghq list >/dev/null | fzf-tmux --reverse +m)"
[[ -n "${REPO_NAME}" ]] && cd "$(ghq root)/${REPO_NAME}"
}
下記のコマンドを実行すると、ghqで管理しているリポジトリをあいまい検索できます。
fg
Discussion