🌍

【2022年版mac移行】M2 MacBook Airへ移行アシスタントを使わずに1から作業環境を作り上げる(CUI編)

2022/08/14に公開

メインPCをM2 MacBook Airに乗り換えました。
前回の2020 MacBook Proから約2年ぶり。
つまり初めてのARM系チップのPCになります。

PC環境はいつもキレイな状態にしておきたいものですが、最高のタイミングがPC買い替え時です。
新しいPCを使うにあたって、私はいつも移行アシスタントを使わずに1から作業環境を作っています。
マシン環境の再確認、棚卸しができるので結果綺麗な環境を作り直すことができます。
また、新しいツールをキャッチアップするチャンスにもなります。

移行作業の記事は以前から書いています。

今回も同様に記録を残します。
この記事ではCUIまわりの設定を記録しています。
個別のツール設定は一部別記事にする予定です。

GUI編のアプリケーションインストールに下記で紹介しています。
【2022年版mac移行】M2 MacBook Airへ移行アシスタントを使わずに1から作業環境を作り上げる(GUI編)

設定作業(CUIの土台を整える)

iTerm2のインストール、設定

入手先: 公式サイト

インストール

Macにはターミナルという名前の標準ターミナルアプリが最初から入っていますが、iTerm2の使い勝手が非常によいのでこれをインストールします。
iTerm2 - macOS Terminal Replacement

iTerm2の良さは下記でも紹介されています。
MacのターミナルアプリはiTerm2で決まり!!オススメの設定と基本的な機能まとめ – Webrandum

設定(必要なければスキップ)

配色

ayu darkに設定しました。
最初から入っているテーマではないのでダウンロードしたものをインポートします。

手順1. GitHubからitemcolorsファイルをダウンロード

ダウンロード先:
hwyncho/ayu-iTerm: ayu color themes for iTerm

ダウンロード方法は何でもよいですが、このページの「Code」というドロップダウンメニューにある「Download ZIP」でダウンロードします。

手順2. iterm2の設定から、手順1でダウンロードしたitermcolorsファイルをインポート

Profiles -> Colorsタブにある「Color Presets...」プルダウンメニューから「Import...」を選択します。
ファイル選択ダイアログが開くので手順1でダウンロードした「ayu Dark.itermcolors」を選択します。

手順3. 手順2でインポートしたカラースキームを選択

「Color Presets...」のプルダウンメニューに「ayu Dark」が追加されているので、これを選択します。

手順4. .zshrcに追記

実はiTerm2の設定だけでは配色が適用されません。
ホームディレクトリ直下に「.zshrc」というテキストファイルを作成して、そのファイルに下記を追記します。

export CLICOLOR=1
export TERM=xterm-256color

手順5. iTerm2の再起動

iTerm2を再起動させるとカラースキームが適用されます。
例えばlsコマンドを実行させるだけで確認できると思います。

配色の設定方法は色々なところで解説されているので参考にするとよいでしょう。
今回はayu Darkを採用しましたが、カラースキームに関わらずやり方は同じです。

iTerm2のカラーテーマを追加して変更する方法 - テストウフ

iTerm2でColorsにJapanesqueを設定する - Qiita

フォント

はMesloLGS NFというフォントをダウンロードします。
後でターミナルのPowerline化(見やすくいい感じの見栄えにすること)にこのフォントが必要になります。

下記TTFファイルをダウンロードします。
MesloLGS NF Regular.ttf
MesloLGS NF Bold.ttf
MesloLGS NF Italic.ttf
MesloLGS NF Bold Italic.ttf

インストール後は、環境設定からフォントを選択します。
(Preference -> Profiles -> TextタブにあるFontプルダウンメニューからMesloLGS LFを選択する)

ついでにターミナルの文字が小さいと思ったので14ポイントに上げました。

Homebrewインストール

入手先: 公式サイトを参考にコマンドラインで入手

言わずとしれたMacのパッケージ管理ツール。
以降の設定ではHomebrewを使ってパッケージをインストールするのでHomebrewを先にインストールします。
インストールは難しくありません。公式サイトに従って下記のコマンドを実行します。

macOS(またはLinux)用パッケージマネージャー — Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

さらに、パスを通します。

echo ‘eval “$(/opt/homebrew/bin/brew shellenv)”‘ >> /Users/ユーザ名/.zprofile
eval “$(/opt/homebrew/bin/brew shellenv)”

brewコマンドが通っていれば成功です。

brew help

作業効率を上げるパッケージ群をインストール

作業の効率を上げるパッケージをまとめてインストールします。

brew install neovim zsh wget tree fzf jq nkf massren tig zoxide rsync ghq git git-ftp bat

今回インストールしたパッケージは以下です。
Macにもとからインストール済のパッケージもありますが、Homebrewでより新しいバージョンのパッケージが公開されていたので取り入れています。

neovim [MacにもとからVimはインストール済]

Vimをフォークしたテキストエディタ。
基本機能はVimと変わりませんが、

  • 標準状態で有効になっている機能が多い

  • メンテナンスが簡単になっている
    など、新機能やUIの活発なアップデートが期待できます。
    (個人的には設定ファイルが「~/.config/nvim/init.vim」というように、ホームディレクトリ直下でなくなったところが嬉しい。)

  • Home - Neovim

  • neovim とは何か? | Vim入門

zsh [Macにもとからインストール済]

Macのデフォルトコマンドシェル。
fishの導入も検討しましたが、結局zshに落ち着きました。

bat

catコマンドを超絶美しくしたコマンドです。
もはやcatにエイリアスを張ってもよさそう。

tree

カレントディレクトリ以下のディレクトリやファイルを階層構造にして表示します。
階層構造表示は人への説明に役立つので重宝します。

fzf [初期設定必要]

fzfとはCLIでインクリメンタルに曖昧な検索が可能になります。
脳みその負担を減らせる神ツール。
VSCodeやAlfredのターミナル版と思えばイメージがつくと思います。

jq

jsonファイルをわかりやすく表示します。

nkf

コマンドラインで行う文字コード変換。
文字コードの異なる古いファイルをさわることが今でもあるので、サクッとUTF8にしています。

massren

カレントディレクトリで実行させると、ディレクトリ/ファイルの一覧をVimで編集できるようになり、変更することによってリネームできるようになります。
vimを使って編集するので大量のファイル名の定型的な変更には特に威力を発揮します。

tig

ターミナル上でgit操作できます。
一見するとただの綺麗なgit logですが、それだけと思っているともったいないです。
アプリケーションの切替回数を減らせるので、SourceTreeなどのGUIツールでやるほどではない作業はこちらでやるとよいでしょう。

zoxide [fasdから乗換][初期設定必要]

ディレクトリのオートジャンプを実現します。
fzfとの連携機構が組み込まれていたのが乗換の決め手となりました。

rsync

ファイルの同期を実現します。
取扱注意ではあるものの、バックアップには

git [Macにもとからインストール済]

ファイルの履歴管理機構。
今やマストの知識です。

git-ftp

Gitのコミットの差分を調べて(S)FTPアップロードしてくれます。
コマンド1発なので、ディレクトリを移動しまくる手間から解放され、アップロードのし忘れを防げます。
git pushが使えない、もしくはリポジトリとは別の箇所にアップロードする場合に使えます。

ghq [導入検討予定]

Gitリポジトリを一元管理します。
fzfと連携できそうなので期待しています。

パッケージによってはインストール後の初期設定が必要になります。
各パッケージの配布元にあるドキュメントを元に設定を進めます。(各パッケージの設定方法は別記事にする予定です。)

zplugインストール

zshのパッケージ管理ツールです。
zplug/zplug: A next-generation plugin manager for zsh

インストール方法は何通りかありますが、私はhomebrewでインストールしました。

brew install zplug

brew infoコマンドの内容を元に初期設定を進めます。

# ~/.zshrc

# 追記
export ZPLUG_HOME=/opt/homebrew/opt/zplug
source $ZPLUG_HOME/init.zsh

zshのプラグインをインストール

先ほどインストールしたzplugを使ってzshのプラグインをインストールします。
この工程でプロンプトのPowerline化を施します。
.zsrhcに追記します。

# ~/.zshrc

export ZPLUG_HOME=/opt/homebrew/opt/zplug
source $ZPLUG_HOME/init.zsh
# ↓追記
zplug "zsh-users/zsh-syntax-highlighting"
zplug "zsh-users/zsh-autosuggestions"
zplug "zsh-users/zsh-completions"
zplug romkatv/powerlevel10k, as:theme, depth:1
zplug load --verbose

ZSH_THEME="powerlevel10k/powerlevel10k"

有効化してからzplugをインストール、ロードします。
コマンド実行後、powerlevel10kの対話画面が出てきます。
ここでPowerline部分のデザインを設定できるので好みの設定に仕上げていきます。

source ~/.zshrc
zplug install
zplug load

今回は以下のプラグインをインストールしました。

powerlevel10k [別途設定必要]

これが昔から一番やりたかったことです。マジでアガリます。
ターミナル画面のPowerline化を実現します。
以下のようにカレントディレクトリに背景色をつけるなど、美しくわかりやすい画面で作業できます。

zsh-syntax-highlighting

入力しているコマンドをリアルタイムで色分けします。
例えば存在しないコマンドを入力すると文字が赤くなったりします。
打ち間違いを減らせるでしょう。

zsh-syntax-completions

補完が強化されます。
例えば以下は、「git c」まで入力してTabキーを押したときの画面表示です。
コマンドによっては概要も一緒に表示されるので少し忘れていてもこの補完で思い出せると思います。

zsh-syntax-autosuggestions

補完が強化されます。
履歴を元に、補完をサジェストするものです。
例えば以下は、「vi」とだけ入力した段階で、薄く「~/.zshrc」と表示されています。
この状態から「→」で残りを入力することもできます。

この機能のためにfishに乗り換えようとしていたのですが、zshでもこのプラグインで実現可能だったのでzshのままでいくことにしました。
それほどに有用なプラグインです。

ここまでの設定でターミナルがとてもいい感じに変貌を遂げると思います。

設定作業(ホスト環境にサーバーを立てる)

最近はDockerを使って開発することが多いのですが、ホスト環境から直接Webサーバーを起動させることもあります。
M1になってから、標準バンドルがより使いにくくなっていると感じます。
やはりHomebrewを使ってWebサーバーを構築してきます。

Apacheのインストールと設定

Apacheは標準バンドルされていますが、前述のとおりドキュメントルートがややこしかったりと使いにくいのでHomebrewで入れ直します。

標準バンドルのApacheが起動している場合は、止めておきます。
わからなければとりあえず下記コマンドを実行でよいです。

sudo apachectl stop

また、自動起動するように設定されている場合は、これを解除します。
わからなければとりあえず下記コマンドを実行でよいです。

sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist

Homebrewを使ってApacheをインストールします。

brew install httpd
# 「brew install apache」ではありません

Homebrew版Apacheを起動します。

brew services start httpd

http://localhost:8080/
にアクセスして表示されれば成功です。

phpのインストールと設定

Homebrewを使ってインストールします。
(今回、phpbrewは使っていません。)

brew install php

sqliteのインストール

brew install sqlite

Discussion