Mac开发环境配置

Mac软件安装

· Xcode
· Git
· iTerm2
· zsh
· Sublime3
· TextMate
· MacDown
· IntelliJ IDEA
· MySQL
· 0xED #编辑二进制文件
· Dash #API文档
· Alfred2
· Xcode 装好以后要启动一次,接受软件声明,不然后面步骤会失败。html

Git

Mac自带,查看下版本java

git --version

Textmate

装完以后,以下配置,在命令行下输入mate filename,能够对文件编辑python

sudo ln -s /Applications/TextMate.app/Contents/Resources/mate /usr/local/bin

Homebrew

Homebrew是一个包管理器,用于在Mac上安装一些OS X没有的UNIX工具(好比著名的wget)。git

在terminal中复制如下命令,跟随指引,将完成 Hombrew 安装。github

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

紧接着,咱们须要作一件事让经过 Hombrew 安装的程序的启动连接 (在 /usr/local/bin中)能够直接运行,无需将完整路径写出。经过如下命令将 /usr/local/bin 添加至 $PATH 环境变量中:web

echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

Cmd+T 打开一个新的 terminal 标签页,运行如下命令,确保 brew 运行正常。chrome

brew doctor

命令操做shell

安装一个包,好比widget,能够简单的运行:json

brew install widget

更新 Homebrew 在服务器端上的包目录:vim

brew update

查看你的包是否须要更新:

brew outdated

更新包:

brew upgrade <package_name>

Homebrew 将会把老版本的包缓存下来,以便当你想回滚至旧版本时使用。但这是比较少使用的状况,当你想清理旧版本的包缓存时,能够运行:

brew cleanup

查看你安装过的包列表(包括版本号):

brew list --versions

Homebrew Cask

Homebrew Cask能够优雅、简单、快速的安装和管理 OS X 图形界面程序,好比 Google Chrome 和 Dropbox。

安装

运行如下命令便可完成:

brew tap caskroom/cask  # 添加 Github 上的 caskroom/cask库  
brew install brew-cask  # 安装 brew-cask

搜索

brew cask search

文件预览插件
有些插件可让 Mac 上的文件预览更有效,好比语法高亮、markdown 渲染、json 预览等。

brew cask install qlcolorcode  
brew cask install qlstephen  
brew cask install qlmarkdown  
brew cask install quicklook-json  
brew cask install qlprettypatch  
brew cask install quicklook-csv  
brew cask install betterzipql  
brew cask install webp-quicklook  
brew cask install suspicious-package

一些推荐安装的程序
都是些经常使用的app,没见过的可自行百度,很少作介绍

brew cask install alfred  
brew cask install appcleaner  
brew cask install cheatsheet  
brew cask install dropbox  
brew cask install google-chrome  
brew cask install sublime-text  
brew cask install mou

若是你常用 Alfred 启动程序,那么你会想 Alfred 能够搜索 brew cask 安装的程序,实现这些仅需运行:

brew cask alfred link


iTerm2+zsh

安装iTerm2
颜色和字体设置
在 Keys -> Hotkey 中设置 command + option + i 快速显示和隐藏 iTerm
在 Profiles -> Default -> Check silence bell
下载 Solarized dark iterm colors,在 Profiles -> Default -> Colors -> Load Presets 将其导入,做为默认颜色。
安装zsh
Mac自带

Oh-my-zsh

安装oh-my-zsh

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh

建立一个zsh的配置文件
注意:若是你已经有一个~/.zshrc文件的话,建议你先作备份。使用如下命令

cp ~/.zshrc ~/.zshrc.orig

而后开始建立zsh的配置文件

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

设置zsh为你的默认的shell

chsh -s /bin/zsh

安装完成以后退出当前会话从新打开一个终端窗口,你就能够见到彩色的提示了

配置
zsh 的配置主要集中在用户当前目录的.zshrc里,用 vim 或你喜欢的其余编辑器打开.zshrc,在最下面会发现这么一行字:

#Customize to your needs…

能够在此处定义本身的环境变量和别名,固然,oh my zsh 在安装时已经自动读取当前的环境变量并进行了设置,你能够继续追加其余环境变量。
接下来进行别名的设置,部分配置以下:

alias cls='clear'  
alias ll='ls -l'    
alias la='ls -a'  
alias vi='vim'  
alias javac="javac -J-Dfile.encoding=utf8"   
alias grep="grep --color=auto"  
alias -s html=mate   # 在命令行直接输入后缀为 html 的文件名,会在 TextMate 中打开  
alias -s rb=mate     # 在命令行直接输入 ruby 文件,会在 TextMate 中打开  
alias -s py=vi      # 在命令行直接输入 python 文件,会用 vim 中打开,如下相似  
alias -s js=mate  
alias -s c=mate  
alias -s java=mate  
alias -s txt=vi  
alias -s gz='tar -xzvf'  
alias -s tgz='tar -xzvf'  
alias -s zip='unzip'  
alias -s bz2='tar -xjvf'

zsh不只能够设置通用别名,还能针对文件类型设置对应的打开程序,好比:

alias -s html=mate #意思就是你在命令行输入 hello.html,zsh会为你自动打开 TextMat 并读取 hello.html
alias -s gz='tar -xzvf' #表示自动解压后缀为 gz 的压缩包

若是你是个主题控,还能够玩玩 zsh 的主题。在 .zshrc 里找到ZSH_THEME,就能够设置主题了,默认主题是:

ZSH_THEME=”robbyrussell”

oh my zsh 提供了数十种主题,你能够随意选择,也能够编辑主题知足本身的变态需求,我采用了默认主题robbyrussell,不过作了一点小小的改动,修改~/.dotfiles/zsh/themes/robbyrussell.zsh-theme文件内容:

PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}>'
#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'

对照原来的版本,把 c 改成 d,c 表示当前目录,d 表示绝对路径,另外在末尾增长了一个「 > 」.

插件
oh my zsh 项目提供了完善的插件体系,相关的文件在~/.oh-my-zsh/plugins目录下,默认提供了100多种,你们能够根据本身的实际学习和工做环境采用,想了解每一个插件的功能,只要打开相关目录下的 zsh 文件看一下就知道了。插件也是在.zshrc里配置,找到plugins关键字,你就能够加载本身的插件了,系统默认加载 git ,你能够在后面追加内容,以下:

plugins=(git textmate ruby autojump osx mvn gradle)

下面简单介绍几个:
git:当你处于一个 git 受控的目录下时,Shell 会明确显示 「git」和 branch,如上图所示,另外对 git 不少命令进行了简化,例如

gco=’git checkout’
gd=’git diff’
gst=’git status’
g=’git’

等等,熟练使用能够大大减小 git 的命令长度,命令内容能够参考~/.oh-my-zsh/plugins/git/git.plugin.zsh

textmate:mr能够建立 ruby 的框架项目,tm finename 能够用 textmate 打开指定文件。

osx:tab 加强,quick-look filename能够直接预览文件,man-preview grep 能够生成 grep手册 的pdf 版本等。

autojump:zsh 和 autojump 的组合造成了 zsh 下最强悍的插件,今天咱们主要说说这货。
首先安装autojump,若是你用 Mac,可使用 brew 安装:

brew install autojump

若是是 Linux,去下载 autojump 的最新版本,好比:

wget https://github.com/downloads/joelthelion/autojump/autojump_v21.1.2.tar.gz

解压缩后进入目录,执行

./install.sh

最后把如下代码加入.zshrc:

[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

至此,安装、配置、插件三位一体,终极 Shell 全面登场。退出终端会话从新登陆,开始感觉 zsh 的训疾如风!

使用 zsh

兼容 bash。

强大的历史纪录功能,输入 grep 而后用上下箭头能够翻阅你执行的全部 grep 命令。

智能拼写纠正,输入gtep mactalk * -R,系统会提示:

zsh: correct ‘gtep’ to ‘grep’ [nyae]?

·各类补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只须要按一下或两下 tab 键,补全项可使用 ctrl+n/p/f/b上下左右切换。好比你想杀掉 java 的进程,只须要输入 kill java + tab键,若是只有一个 java 进程,zsh 会自动替换为进程的 pid,若是有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键,zsh会列出全部访问过的主机和用户名进行补全

·智能跳转:安装了autojump以后,zsh 会自动记录你访问过的目录,经过 j + 目录名 能够直接进行目录跳转,并且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado便可正确跳转。j –stat 能够看你的历史路径库。

·目录浏览和跳转:输入 d,便可列出你在这个会话里访问的目录列表,输入列表前的序号,便可直接跳转。在当前目录下输入 .. 或 … ,或直接输入当前目录名均可以跳转,你甚至再也不须要输入 cd 命令了。

·通配符搜索:ls -l **/*.sh,能够递归显示当前目录下的 shell 文件,文件少时能够代替 find,文件太多就歇菜了。

·更强的别名:请参考配置一节。

·插件支持:请参考插件一节。

更新可能遇到的问题:

➜ ryan@lh ~  upgrade_oh_my_zsh -h
Upgrading Oh My Zsh
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
There was an error updating. Try again later?
➜ ryan@lh ~  $ZSH
➜ ryan@lh .oh-my-zsh git:(master) ✗ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   plugins/bgnotify/bgnotify.plugin.zsh
    modified:   plugins/catimg/catimg.sh
    modified:   plugins/cloudapp/cloudapp.rb
    modified:   plugins/emacs/emacsclient.sh
    typechange: plugins/go/go.plugin.zsh
    typechange: plugins/per-directory-history/per-directory-history.plugin.zsh
    modified:   plugins/scd/scd
    modified:   plugins/wd/wd.sh
    modified:   tools/install.sh
    modified:   tools/require_tool.sh
    modified:   tools/theme_chooser.sh
    
 Untracked files:
  (use "git add <file>..." to include in what will be committed)

    themes/ryanbalfanz.zsh-theme

 no changes added to commit (use "git add" and/or "git commit -a")

是因为修改了主题文件,致使没法更新。解决方法:

~ $ZSH
~ git add .
~ git commit -m "theme"
~ git push 
~ git pull origin master


参考

个人Mac开发环境配置
终极Shell —— ZSH
Can’t update using upgrade_oh_my_zsh #1991