Create this article to summarize my scirpts to setup my Macbook:
Install ruby and rvm
curl -sSL https://get.rvm.io | bash -s stable --ruby # install bundler gem install bundler # Add the following line into .bash_profile or .zshrc source ~/.rvm/scripts/rvm
brew rm vim vim python brew install python brew install vim --with-override-system-vi
Note: if python3 is not installed or configured as default
brew install macvim --with-cscope --with-lua --with-override-system-vim --with-luajit --with-python brew linkapps macvim
Sometimes you get weird errors in VIM, due to the integration of various libraries.
One error you might frequently see in MacVim is about python:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
Follow this link regarding how to install vim properly in Mac.
Note: Sometimes you will have to reinstall everything to resolve this.
brew cask install intellij-idea-ce
# install zsh first brew install zsh zsh-completions # install oh-my-zsh on top of zsh curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh #make zsh the default shell if not yet chsh -s /usr/local/bin/zsh
Configure iTerm color thems
Download and configure iTerm color thems
configure zsh themes
# Add the following into .zshrc ZSH_THEME=pygmalion # enable plugins for git, vagrant, etc. plugins=(git vi-mode colored-man colorize github vagrant brew mvn Forklift gradle httpie node npm pip python ruby rvm screen tmux osx zsh-syntax-highlighting)
Note: if you receive the following errors when using fl for Forklift, it’s very likely caused by the assistive access for Script Editor.
System Events got an error: osascript is not allowed assistive access. (-1719)
To enalbe the assitive access, go to System Preferences > Security & Privacy > Privacy > Accessibility.
Make sure Script Editor is checked in the list.
Configure SSH with remote server
enable vi mode in zsh
export VISUAL=vim autoload edit-command-line; zle -N edit-command-line bindkey -M vicmd v edit-command-line
store passphrase to keychain
Add you key file to keychain
/usr/bin/ssh-add -K /path/to/private_key
Note make sure use the capital
K, and if it complains about the option not supported, make sure you use
Host server.example.com IdentityFile ~/.ssh/id_rsa UseKeychain yes
If you are sharing your ssh configuration with systems running older versions of OpenSSH that don’t understand the UseKeychain option, you can specify the IgnoreUnknown option to keep your configuration compatible with both new and old versions, like this(just put it at the beginning of the config file):
See details in https://developer.apple.com/library/archive/technotes/tn2449/_index.html And also https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
Configure Rime input (For Chinese text input)
- I have recently experienced a random issue that iTerm hangs and I have to do a OS reboot to clear it up. It’s fairly painful, since Terminal.app is affected also. I ended up using Hyper Terminal as a backup when this occurs and I don’t want to reboot. I haven’t figured out the root cause of the issue yet. Here is a stackover flow discussion around the same issue. I will post an update once I have this fixed.
time zsh -c -i exitto tune up the zsh loading time.
Tune startup time for zsh
If you notice slow startup time of zsh, you can use the following command to measure the startup time. And then you can adjust the zsh config to see how you can optimize it. A binary search is usually very helpful to identify what’s caused the slowness. Somehow, I found
nvm is incredibly slow on MacOS. So I have to create a function to only enable it when I need it.
time zsh -i -c exit
- Another option is to use
zprofto find out what has contributed to the longer loading time.
- If you can also use lazy load for some time-consuming plugins to reduce the startup time. Refer to this article: - https://kevin.burke.dev/kevin/profiling-zsh-startup-time/