Git
Node.js
MacOSX
homebrew
環境構築

シンプルにMacでのプログラミング環境構築考えてみた。

最近MacBook Pro2017を購入したので環境構築を考え直してみました。

ドットファイル周りはgithubなどを使って管理したほうがいいのですが、今回はパソコンを初めて買って今からプログラミングしたいなと思っている方にも参考になればと思うのでやめておきます。

コンセプト

  • シンプルに構築する
  • 後々自分で変更が効かせられるようにする。

基本設定

  • 3本指ドラッグ System PreferencesAccessibilityMouse&TrackpadTrackpad OptionsEnable draggingthree finger dragに設定。この3本指ドラッグですが、今のところ旧型のMacBookProのトラックパッドのほうが効きがいい。
  • Tap to clickにチェックなどなどTrackPadの設定
  • Keyboard設定
    • Key Repeat: Fast
    • Delay Until Repeat: Short
    • Shortcuts: USキーボードを使っているのでSelect the previous input sourceCommand+Spaceを設定.
    • ショートカットはまだまだ変えているのですが、書ききれないので基本的にこれさえ変えればという設定だけ載せます。
  • capslockキーをcontrolキーに変える:USキー配列なので設定。
  • controlをESCに変える:タッチバーが予想以上に使いにくいので。jisの方はcapslockか何かをESCにしたほうがいいかもしれない。

普通にインストールしたアプリ

チェックを入れてないものはなんとなく入れたアプリ

Chromeで入れたほうがいい拡張機能

  • Instant Translate

選択した英語(単語から文章でもなんでも)を日本語に翻訳してくれる便利拡張機能。
これがあるのとないのとでは公式ページを理解するスピードが全然違います。

使い方はwebページでわからない英語の文があったら選択してShift+T

homebrewについて

なんでもhomebrew管理からの脱却

何をどこで管理しているのかをはっきりさせる。
構築を考える上で、上記のことに気を使えばbrew updateなどで出るエラー内容を予測できると考えた。

homebrewで入れたもの

チェックが付いているもの以外はお好み

  • git brew install git
  • zsh brew install zsh
  • emacs brew install emacs
  • tmux brew install tmux
  • peco brew install peco

pecoの設定は後ほどリンク

  • docker brew install docker & brew cask install docker
  • go brew install go
  • kotlin brew install kotlin 個人的にやっているプログラミング言語。

とりあえず試したいプログラミング言語はbrewでinstallすると良いと思います。バージョン管理が頻繁に必要な場合、rbenv,pyenvanyenvなどを検討されると良いと思います。その場合、PATHに気をつける。

bashからzshへ

$ sudo emacs /etc/shells or $ sudo vi /etc/shells

以下を追加

/usr/local/bin/zsh

以下のコマンドを実行

$ chsh -s /usr/local/bin/zsh
$ exec $SHELL

zshに色をつけよう

このへんのプラグインはたくさんあって何にすればいいのかわからない場合が多い。
実際、使って見ないとわからない事も多い。
色々使ってみた感想、結局oh-my-zshが一番かんたんにセッティングできた。
他のものを使ってみたいという方にはzplug、preztoなどのgithubを見るといいと思う。
個人的にはzplugのREADMEがめちゃくちゃキレイで読みやすかった。ただ、zplugはプラグインをよく選ばないと読み込み速度が遅くなるのでその辺を注意しなければいけないと思った。
今回はてっとり早く構築したいのでoh-my-zshをインストールしたいと思う。
zplugに関するコメントをもらったので後日zplugについて追記するかもしれません。

zplugの記事を書きましたのでoh-my-zshではなくzplugで設定されたいかたはこちらの記事を参考にしてください。
zplugのほうがギーク向けなのでなんでもいいという人にはoh-my-zshでいいと思います。

oh-my-zshをインストール

.zshrcをすでに書いている人は以下のコードを実行すると上書きされるので退避しておくとよい。

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

何をやっているのか気になる方はinstall.shを見るといいと思います。
Gitで管理することになります。
ここでgitという言葉を聴いたことのない方はUdemyの[もう怖くないGit!チーム開発で必要なGitを完全マスター]を見るといいと思います。有料ですが、gitのことをわかりやすく動画で説明してくれています。

ホームディレクトリに色々ドットファイルが作られていることを確認する。
$ ls -a

$ emacs .zshrc or vi .zshrc

色々バババと書いてある。themeの記述を変えるといい感じになる。カスタマイズ系は公式githubを参考にカスタムする。

以下を追加。homebrewのpath
export PATH=/usr/local/bin:$PATH

pecoの設定

# peco
function peco-history-selection() {
    BUFFER=`history -n 1 | tail -r  | awk '!a[$0]++' | peco`
    CURSOR=$#BUFFER
    zle reset-prompt
}

zle -N peco-history-selection
bindkey '^R' peco-history-selection

起動コマンド→Ctrl+r

powerline themeを入れる場合の注意点

powerlineという有名なthemeがあります。自分もEmacsのカスタムで入れています。
これには特殊なフォントを使うのでそれをインストールする必要があります。
これもほとんどの場合、公式ページなどに書いてあるのですが、よく読み飛ばしてしまう場合があるので書いておきます。
powerline/fonts

  • クイックインストール
$ git clone https://github.com/powerline/fonts.git --depth=1
$ cd fonts
$ ./install.sh
$ cd ..
$ rm -rf fonts

自分はD2Coding for Powerlineというフォントを使っています。

iterm2をいい感じにする。

おすすめtheme: Dracula

なんか癖になる色。自分はAtomやVScodeにもDraulaを使っています。
エディタのthemeは統一すると見やすくなることもあります。

iterm2のカスタムは人によって変わるので調べて自分の使いやすいように変えると良い。

  • 変更方法

この辺は適当にZipをダウンロード&解凍
itermのPreferencesProfilesColor→右下のColorPresetimportをクリック先程解凍したフォルダからthemeファイルを選択
以上の作業をすればColor Presetsで選択可能になる。

  • 背景透明化

PreferencesWindowTransparency

操作方法などはググって慣れるしかない。

ここからはWEB系プログラムで使う設定

Node.jsのインストール

今のフロントエンドでは欠かすことのできないNode.js、そのバージョン管理には様々なものが使われています。nvm,nodebrew,ndenvなど。プロジェクトによってバージョンの変わるNode.jsをhomebrewや公式のZipなどでインストールしてしまうと後々めんどくさいことになります。

さて、nvm,nodebrew,ndenvなどたくさんあるバージョンの中でどれを入れればいいのか。これには好みなどが左右します。

  • 管理しやすそうなのはnodebrewです。ですが、perlを使用しているところを見ると無駄に重そうという印象。
  • ndenvは.node-versionというファイルを使用することで自動的に変更できる(README読んだだけ)。 ですが、更新が止まっているっぽいので保留。
  • nvmは公式の情報も一番多かったのでこれに決めました。

nvmのインストール

https://github.com/creationix/nvm

色々インストールの仕方がありますが、できるだけGitで管理したいため、Git installを使用します。

ホームディレクトリに移動
$ cd

以下のコマンドを実行

$ git clone https://github.com/creationix/nvm.git .nvm
$ cd .nvm
$ git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`

.zshrcに以下を追加

# node
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

nodeのバージョンをインストール
$ nvm install v7.9.0

バージョンを指定する
$ nvm alias default 7.9.0 & $ nvm use v7.9.0

ここまで終わったらnode -v & npm -v

で確認。

以上になります。

Androidアプリ開発で使うコマンドを使えるようにする。

最近Android開発を趣味で勉強しているので付け加えてみた。

DroidKaigi2017のコマンドなしでぼくはAndroid開発できない話の動画を見ると、とても参考になります。ありがとうございました。

# android
export ANDROID_DIR=$HOME/Library/Android/sdk
export PATH=$PATH:${ANDROID_DIR}
export PATH=$PATH:${ANDROID_DIR}/platform-tools
export PATH=$PATH:${ANDROID_DIR}/tools

こんな感じで設定。
後はadb-pecoとか入れればいいと思います。
まだまだなのでこれから勉強がんばります。

まとめ

2年か3年前にanyenvの記事を書きました。「いいね」をくれた方ありがとうございます。

今回はhomebrewで管理するもの、gitで管理するものの区別を意識して環境構築しました。
gitを使うので、bashからzshにかえ、ブランチなどをわかりやすく表示したりすることにしました。
なんとなくこれ使うとかではなく、公式とか見てよく検討し何故それを使うのかを自分の中で納得できれば構築後、すごく満足しますよね。
とかインフラエンジニアっぽい事言ってみる。笑(インフラエンジニアではないのですが。。。)
全く関係ないことだけど、MacBook Proのタッチバーめっちゃ使いにくい。(泣)