giftee engineer blog

「Macの開発環境構築2021」についてLTしました

2021-07-06

giftee社内イベントのTechBashにて、「Macの開発環境構築2021」についてLTしました。

はじめまして。髙田と申します。 2020年に新卒でギフティに入社し、SaaS事業部でエンジニアとして働いております。

6月に開催された社内イベントのTechBashにて、「Macの開発環境構築2021」というタイトルで発表し、開発効率を向上させるために便利なツールをご紹介しました。

アイキャッチ

以下、発表内容です。

発表の目的

  • 開発に役立つツールを紹介して、ちょっとでもみなさんの開発効率向上に役立てたらいいな
  • Takadaが知らないツールを教えてほしい

前提

  • 今回はMacを使うことを前提としている

話すこと

  • Macの設定
  • ランチャーアプリ
  • 画面分割
  • ターミナル関連で便利なツール
  • DBMSのGUIツール
  • ブラウザ関連

話さないこと

  • エディタ関連

    • 戦争が起こりそうなので何も話しません
    • VSCodeがおすすめです(無料で使える最強エディタ)

Macの設定

キーの入力速度を爆速にする

Macの下図の設定で、「キーのリピート速度」と「リピート入力認識までの時間」を最速にする設定はみなさんされていると思いますが、この限界を突破する方法があります。

Macのキーボードの設定画面

爆速にする方法は以下の通り。エディタでカーソル移動するときに、vimのように爆速で移動することができるようになります。

$ defaults write -g InitialKeyRepeat -int 10
$ defaults write -g KeyRepeat -int 1
Mac再起動

参考:https://gist.github.com/hofmannsven/ff21749b0e6afc50da458bebbd9989c5

ランチャーアプリ

Alfred

Alfred

  • Mac標準のspotlightの進化系
  • アプリを開くときに便利
  • ブックマークにすぐアクセスできる
  • ちょっとした電卓としても使える
  • 課金するとクリップボードの履歴検索などさらに便利な機能が使えるらしい

画面分割

Rectangle

Rectangle

  • 画面分割や画面移動が自由自在

ターミナル関連で便利なツール

iTerm2

iTerm2

  • Mac標準搭載のターミナルよりもUIが綺麗で多機能
  • 開発環境構築の記事でもよく紹介されている

powerlevel10k

powerlevel10k

  • zshのテーマ
  • ターミナルがおしゃれになる
  • カスタマイズも簡単

fzf

fzf

  • CLIでインクリメンタルな曖昧検索ができるようになるツール
  • 似たようなツールでpecoもある(前はpecoを使っていたが、fzfの方がかっこいいので乗り換えた)

fzfの便利な使い方

1. gitのブランチ切り替え

fzfでgitのブランチ切り替えをするときの画面

設定方法(ctrl + \にショートカットを割り当てる場合)

~/.zshrc

function git-branch-fzf() {
  local selected_branch=$(git for-each-ref --format='%(refname)' --sort=-committerdate refs/heads | perl -pne 's{^refs/heads/}{}' | fzf --query "$LBUFFER")

  if \[ -n "$selected_branch" ]; then
    BUFFER="git checkout ${selected_branch}"
    zle accept-line
  fi

  zle reset-prompt
}
zle -N git-branch-fzf
bindkey "^\\" git-branch-fzf

2. コマンド履歴の検索

fzfでコマンド履歴を検索している画面

おそらくfzfインストール時に勝手に設定される。ctrl + Rで発動する。

3. リモートホストへのSSH

fzfでssh先のhostを選択する画面

設定方法

~/.zshrc

# fzf_ssh
function fzf_ssh () {
  local selected_host=$(grep "Host " ./ssh_config | grep -v '*' | cut -b 6- | fzf)

  if [ -n "$selected_host" ]; then
    echo "ssh -F ./ssh_config ${selected_host}"
    ssh -F ./ssh_config $selected_host
  fi
}

ghq

ghqとfzfでリポジトリを選択している画面

  • リポジトリ管理ツール
  • 「どのプロダクトをどのディレクトリに置いたか忘れる」「プロダクト間のディレクトリ移動がめんどくさい」という悩みを解消できる
  • fzfと組み合わせると、一瞬でディレクトリ移動ができるのでとても便利

Rust製のCLIツール

exa

exaコマンド

  • lsコマンドの進化系
  • lsよりもおしゃれで速い

bat

batコマンド

  • catコマンドの進化系
  • catよりもおしゃれで速い

他にも、fdprocsなどがある。

DBMSのGUIツール

TablePlus

TablePlus

  • MySQL Workbenchが有名だが、TablePlusの方がUIが綺麗で使いやすい
  • 無料版だと、同時にテーブルを2つまでしか開けないのがデメリット

ブラウザ関連

workona(ワコーナ)

workona

  • chromeのタブ管理ツール
  • 「タブを開きすぎてどこに何のタブを置いたか分からん」という悩みを解消できる

以上、Macの開発環境構築2021についてご紹介させていただきました。他にもこんな便利ツールを知っているよという方は、是非教えてください。

少しでもこの記事が参考になれば幸いです。