tu-huynh
tuhuynh
.com
$
Blog

Setup máy Mac cho developer trong vòng một nốt nhạc

Setup máy Mac cho developer trong vòng một nốt nhạc

wrote

Nếu chỉ cần setup để code những trang static cơ bản, thì chỉ cần Chrome và Notepad là đủ emoji-smile, tuy nhiên mình làm việc khá nhiều với các build script, build tools và terminal nữa, việc setup máy sẽ phức tạp hơn tí.

brew install neofetch

macterm

Life on terminal… Mọi thao tác trong việc cài đặt đều được thực hiện trên terminal nhé. emoji-smiley

[Updated Nov 21 2019]

Package Management

HomeBrew

Nếu đã quen với những apt hay yum bên Linux rồi thì với macOS chúng ta có brew, giúp cài, update và xoá các software package một cách dễ dàng và nhanh chóng thông qua bộ CLI của nó.

Cài đặt HomeBrew (brew):

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Nix (WIP)

Thử xài Nix thay cho HomeBrew để quản lí package

sh <(curl https://nixos.org/nix/install) 

Các package được list ra ở ~/.config/nixpkgs/config.nix

{
  allowUnfree = true;  
  packageOverrides = pkgs: with pkgs; {
    myPackages = pkgs.buildEnv {
      name = "my-packages";
      paths = [
        aria2
        cmake
        ffmpeg
        fzf
        git
        gitAndTools.git-extras
        gitAndTools.hub
        gnupg
        go
        htop
        jq
        neovim
        nodejs
        parallel
        (python38.withPackages (ps: with ps; [ pip setuptools ]))
        reattach-to-user-namespace
        ripgrep
        ruby
        starship
        stow
        tldr
        tmux
        tree
        zsh
      ];
    };
  };
}

Để cài hết:

nix-env -iA nixpkgs.myPackages --verbose

Terminal

iTerm2

Terminal là cái tiếp theo mà mình nghĩ đầu tiên khi setup máy mới, terminal cần tất cả các thao tác liên quan tới Git, các lệnh chạy build task. Vì cái terminal mặc định của Mac khá là sida nên mình sẽ quyết định cài 2 cái terminal shell khác ở đây là iTerm2 (cái này khá là phổ biến rồi).

brew install --cask iterm2

Alacritty

Ngoài ra các thao tác với neovim hơi nặng một tí mình sẽ dùng Alacritty - đây là một cái terminal emulator viết bằng Rust (nghe là biết chạy nhanh rồi emoji-sweat_smile), dùng GPU để tăng tốc render, vì thế nếu xài với neovim sẽ rất nhanh. Thằng này thì tính custom khá cao, tuy nhiên thiếu đi mất vài tính năng cơ bản như Tab, vì thế nếu muốn dùng tab trong này thì phải xài Tmux emoji-smirk, hơi lằng nhằng một tí.

brew install --cask alacritty
brew install tmux

Shell: ZSH với Oh My Zsh

Cài đặt ZSH bằng HomeBrew:

brew install zsh

Xài terminal mà không có Zsh/Fish thì chán lắm, ở dây mình xài với Oh My Zsh, cũng khá phổ biến thôi. Xài zsh làm cho việc gõ command trên terminal nhanh hơn, tiện hơn với nhiều utils hay và alias nữa, ngoài ra cũng giúp bạn gõ lệnh trông ngầu hơn emoji-smirk.

Ngoài ra, mình xài chung Oh My Zsh với theme SpaceShip và một số plugin cơ bản khác.

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

Xài theme custom thì cài thêm font SourceCode Pro nữa, có thể cài qua HomeBrew:

brew tap homebrew/cask-fonts && brew install --cask font-source-code-pro

zsh

Sau đó sửa config zsh tại ~/.zshrc, đây là phần custom của mình, có xài thêm 1 số plugin khác như suggestion và auto complete:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
vim ~/.zshrc
plugins=(zsh-autosuggestions)
git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
vim ~/.zshrc
ZSH_THEME="spaceship"

Auto Jump

git clone git://github.com/wting/autojump.git
cd autojump
./install.py

Nerd Fonts

brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font

Git, Docker, Node.js, Java và Go

Đương nhiên để code thì phải có 4 thằng này rồi emoji-smile, quá ez với brew:

brew install git
brew install docker
brew install node
brew tap homebrew/cask-versions
brew install --cask java
brew install go

Cài thêm yarn và một số lib global hay dùng bên Node.js đễ xài khi cần thiết

npm install yarn -g
npm install serve -g

Code Editor

Visual Studio Code

Mình chọn xài VSCode vì nó nhanh (tất nhiên không nhanh bằng Sublime Text hay Vim), có nhiều utils, plugin và được support tốt từ community, update đều đặn. Integrate tốt với hầu hết mọi ngôn ngữ (mình đang xài VSCode để code JS, TS và Go luôn, Java cũng được nhé emoji-smile).

brew install --cask visual-studio-code

Vim: NeoVim

Cài đặt NeoVim:

brew install neovim

Cài đặt vim-plug cho NeoVim:

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

File init.vim đã config sẵn: Gist

vim ~/.config/nvim/init.nvim

nvim

Jetbrains Collection

*Mình đã chuyển sang dùng Jetbrains IDEs trong năm 2020.

brew install --cask intellij
brew install --cask goland
brew install --cask webstorm
brew install --cask datagrip

Browser

Safari Firefox Google Chrome với Chrome Dev Tool vẫn là ngon nhất emoji-smile.

brew install --cask google-chrome

Một số tools khác cho việc dev và communicate

brew install --cask postman

brew tap caskroom/cask
brew install --cask mysqlworkbench

brew install --cask slack
brew install --cask skype
brew install --cask caprine

Dotfile

Ngoài ra để cho nhanh (khỏi phải config), các bạn có thể tìm và xài các bộ dotfile đã được viết sẵn tại đây.

done