WindowsとUbuntuを使ってきたプログラマがMacBookAirを購入した

会社ではWindows7、プライベートではUbuntuを使ってきたプログラマの端くれだが、とある事情でiPhoneアプリ開発にチャレンジすることになったため、初めてMacBoookAirを購入した。
慣れ親しんだOSから乗り換えると使い勝手が変わるので、この手の経験談をブログにまとめているサイトが多くあるが、だいたい「WindowsからMacに」の記事が多く、Ubuntu使いがMacに乗り換えた記事はあまり見なかったので、まとめることにした。

# パッケージ管理
UbuntuだとデフォルトでAPTがインストールされているが、Macでは追加でインストールしないといけない。
MacPortsとHomebrewがあるということはなんとなくわかったが、Qiitaの記事の多さではHomebrewが圧倒的だったのでこれを使うことにした。

インストールは公式サイトのやり方で簡単にできた。
https://brew.sh/index_ja

search/insall/update/upgradeなど基本的にはaptと同じように使えるので問題ないが、`brew install`と`brew cask install`が存在するので注意しよう。

# ターミナル
Linux使いならば当然使い倒すだろうターミナルは、Ubuntuの場合デフォルトでもある程度は設定されているのだが、Macは設定しないと使い物にならない。

## デザイン変更
ターミナルの設定変更は、`command + ,`で開く。
プロファイルから好きなデザインを選んで変更する。ついでにフォントも変更した。

## フォント変更
デフォルトのフォントがマジかよってくらい見づらいので変更する。
何に変更するかは自由だが、そういえば最近こんな記事を読んだので、**Code New Roman**をインストールして使うことにした。
https://gigazine.net/news/20190123-programming-fonts/

## bashからzshに
Ubuntuだと最初から`~/bashrc`が用意されていて、デフォルトのままでも使いやすいのだが、Macは`~/.bashrc`も`~/.bash_profile`も`~/.profile`も存在せず、まったく設定されていない。
ゼロから設定するくらいなら別のシェルに乗り換えるのもありだと思ったので、前から使ってみたかったzshに乗り換えることにした。
zshについての設定は記事が多くなりすぎるのでここでは割愛。

## コマンドのちがい
MacはBSD系なので、微妙にUbuntuのコマンドと使い方が違う。

### ls
Ubuntuだとデフォルトでいくつか`alias`が登録されているが、Macでは一切されていないので自分で設定する必要がある。差異としては、MacとUbuntuでは`ls --color=auto`ではなく`ls -G`なことだ。これでファイルとディレクトリがわかりやすくなる。
ちなみに`grep --color=auto`はBSDでもそのままだった。

## find
findコマンドもあるが、Macにはmdfindというコマンドもあり、こっちのほうが高速で全文検索もできるのでこっちを使うことにした。

## top
BSD系のtopコマンドはスレッドごとの表示などができないし、オプションも違うので完璧に別物と思ったほうがいい。これを気にhtopコマンドに乗り換えることにした。

# Finder
WindowsだとExplorer、Ubuntuだとnautilus、MacではFinderだ。
Finderではじめに戸惑ったのがファイルの消し方だ。`delete`キーで消えない。`command + delete`で消せる。Macユーザにとってはきっと常識なんだろうが、これは絶対に言われないとわからない。
あと、テキスト編集時に`fn + delete`が`Deleteキーの動きになるというのも言われないと気づかないだろう。

それから、カレントディレクトリの絶対パスが表示されない。nautilusだと`Ctrl + l`で絶対パスが編集できるようになる、あの機能は結構お気に入りなんだが、Finderにはない。
`command + shift + G`で任意のディレクトリに移動することはできる。

どうでもいいが、ホームディレクトリ直下のディレクトリ名が、ターミナル上だとアルファベットだが、Finder上では日本語表示になっている。

# これまでの所感
## メリット
買って一週間も経過していないが、いまのところ感じているメリットはこんなところ。

- OS全体でemacsキーバインドがデフォルトで対応している
- トラックパッドが高機能
- 見た目がきれい

## デメリット
使い勝手という意味で言えば、慣れが必要な部分が多いので評価は保留したい。
使い勝手以外で言うなら

- 価格が高すぎ。
- 外部ディスプレイ出力などに変換ケーブルが必須になるモデルが多い。
- Airはそうでもないが、MacBookは基本的に重量が重い。

## 慣れが必要なところ
主に物理的なキーボード配列の違いから発生することだが、こればかりはどうようもない。

### `control` と `command`キーの使い分け
Windowsキーボードだと、`Ctrl`で入力してきたショートカットキーが、Macだと`control`と`command`になるため、詳細な切り分けができるが、慣れてしまった人間からすれば混乱すること間違いなし。
自分は、Ubuntuで`CapsLock`を`Ctrl`キーに置き換えているので、どうしても「上書き保存」のつもりで`control + S`を押してしまう。
とはいえ、`control`を`command`に置き換えると、emacsキーバインドが使いづらくなるのでそれはやりたくない。
慣れるしかないと割り切ることにした。

### 全角半角入力切替
Macには全角半角キーがないため、`control + space`で全角/半角を切り替える。

Ubuntuでも `ctrl + space`で全角/半角切り替えができるので、それに慣れていればよかったのだが、プログラマだとコード入力補完にこのキーを割り当てていることがあり、自分もそのタイプだった。
WindowsとUbuntuであれば、全角半角キーで共有できるので問題なかったのだが、Macだと物理的にキーがないため問題になった。
苦肉の策だが、ここはemacsキーバインドに合わせて`control + ¥`で切替するように変更し、コード補完の方を全OSで`control + space`で統一することを選んだ。
こういう日本人専用のUIはいつも悩まされる。

### キーピッチが開きすぎ
たまたま購入したモデル（MacBook Air 13inch-2017）が良くないだけだろうか。個人的には慣れない（使いにくい）と感じている諸悪の根源がこれだ。
慣れればそうでもないのだろうと割り切っているのだが、あきらかに過去のノートPCと比べてもキーピッチが広すぎて、特に左の小指が辛い。
デスクトップ用のキーボードと比べると同じくらいなので、そうでもないと思ったのだが、たぶんこれが大きな間違いだ。

デスクトップPCの場合、概ねモニタは20インチ以上になるため、自然とモニタとの距離が離れた状態でキーボードを操作する。
これに対し、ノートPCだとモニタとキーボードが一体であり、かつモニタのサイズはそれほど大きくないため、自然とモニタとの距離が近づくことになる。膝の上にノートPCを乗せてタイピングする人だっているのではないだろうか。
そうなると、タイピングするときの姿勢はどうしても前傾姿勢となり、肘が曲がって、この体勢で小指を曲げたり伸ばしたりするのは辛い。
ソフトウェアの設定でなんとかなるものでもないので、購入時にもっと慎重になるべきだったと反省した。

# まとめ
たぶん、いやきっとiPhoneアプリ開発以外ではUbuntuをメインで使うことになる気がする。
まだ使い始めたばかりなので良し悪しを語れるほどではないが、Macを使い始めようとする人の参考になれば幸いだ。Macは物理的な制約（キー配置や変換プラグ要否や重量など）が本当にネックだと思うので、そこだけはよく考えて購入してほしい。