ターミナル周りの便利ツールたち

2023-08-10

はじめに

こんにちは。hatakoya です。今回は自分が普段ターミナル周りで使っているツール類をいくつか紹介したいと思います。

Alacritty

Alacritty はターミナルエミュレータです。特にこだわりはないですが余計な機能がなくシンプルなので気に入っています。
また、クロスプラットフォーム対応なのも地味に嬉しいポイントです。

oh-my-zsh

oh-my-zsh は何も考えずにとりあえず入れるだけで簡単に便利になるので入れています。
プラグインがたくさんありますが、主に以下の 2 つを使っています。

  • fzf
    • Ctrl+r で履歴からコマンドを検索などするときにあいまい検索ができるようになり便利です
  • autojump
    • j <好きな文字列> を打つと文字列から推測して気を利かせてディレクトリ移動してくれます

starship

starship でターミナルのプロンプトをカスタマイズすれば色々な情報を表示できます。
設定ファイルの場所はデフォルトで ~/.config/starship.toml になり、このファイルを変えることで自分好みにすることができます。

例えば、gcloud コマンドが参照しているアカウントや GCP プロジェクトを出したり。

[gcloud]
format = 'on [$symbol$account(@$domain)(\($project\))]($style) '
symbol = ""

今いるディレクトリの Node.js バージョンを表示することもできます。

[nodejs]
symbol = "[⬢](bold green) "

これ以外の設定についても色々なものが公式ドキュメントに書いてあります。

Lazygit

Lazygit を使うとターミナル上から Git 操作をリッチにできるので使っています。
変更を 1 行ずつステージするのも簡単で便利です。

tmux

ターミナルの分割にtmuxを使っています。

tmux 上での操作はプレフィックスキー(デフォルトは ctrl+b)+何かのキーを押すことで行います。
以下がよく使っているショートカットです。

  • [prefix]+d - セッションのデタッチ
  • [prefix]+c - 新しいウィンドウを開く
  • [prefix]+[数字] - 指定した番号のウィンドウに切り替える
  • [prefix]+w - ウィンドウ一覧を表示
  • [prefix]+n - 上の番号のウィンドウへ移動
  • [prefix]+p - 下の番号のウィンドウへ移動
  • [prefix]+& - ウィンドウの削除
  • [prefix]+" - 水平分割
  • [prefix]+% - 垂直分割
  • [prefix]+o - ペイン間の移動

個人的には水平、垂直分割のキーがわかりにくいので以下のように(\- に)割り当てを変えています

# ~/.tmux.conf
bind \\ split-window -h
bind - split-window -v

また、.zshrc を以下のようにしておけばターミナルを開いた瞬間に tmux を実行してセッションに入るようにすることもできます。

tmux_profile () {
  tmux new-session -d -s 'my-session' -n 'main'
  tmux new-window -t 2 -n 'sub' -d
  tmux attach-session -d -t 'my-session'
}
tmux_open_if_not_in_session() {
  if [ -z $TMUX ]; then
    tmux a
  fi
}

tmux_profile
tmux_open_if_not_in_session

neovim

普段の開発は Goland などの IDE を使っていますが、ちょっとファイルを確認したいときなどは neovim を使っています。
以下のようなエイリアスを設定しておき、view <ファイル名>で見れるようにしています。

alias view="nvim -R"

おわりに

以上がターミナル周りのツールの紹介でした。この記事がお役に立てれば幸いです。
また、弊社 Belong は一緒に働くエンジニアを募集しています。
興味がある方は https://entrancebook.belonginc.dev/ をご覧ください。