程序员

打造炫酷的开发环境

无图无真相,这篇文章的主要目的是打造如下所示的终端开发环境,涉及terminalshell以及editor等,着重于配色。

zsh.png

terminal不必多说,iTerm2Mac下的不二选择,不解释了。如果你在windows上开发,推荐使用Putty,当然了跟iTerm2不是同个级别的东西。

关于shell,我之前一直在bash上瞎折腾,认为最普适的就是最好的。毕竟在绝大多数机器环境上,bash唾手可得,不需要额外安装。但是,bash没有足够丰富的现成配置方案可用,自己山寨要花很多精力而且效果也不是很好。zsh就不一样,名字就透着shell终结者的意思。zshbash要好用,而且有现成的配置方案,特别是oh-my-zsh,非常好用。

vim.png

关于editor,向来都有vimemacs的争议。我只使用过vim,也没法评论。争议是没有必要的,如果都没用过,选一个学一下就是;如果用过其中之一,维持现状即可;想两个都体验一下也行,找到适合自己的才是最重要的。我习惯使用vim,下文便以vim为例好了。

iTerm2

iTerm2Mac下一款优秀的终端软件,功能比内置的iTerm强很多。关键是,这款应用还是免费的!赶紧到www.iterm2.com下载吧!安装后,它是这个样子的:

iTerm2-高亮版.png

呃,颜色货不对版呀!对的,这是iTerm2默认的颜色,别心急,接下来我们来调整配色方案。

配色

solarized是一套好看又不伤眼的配置方案,很多人推荐,目前托管在github上。接下来,我们看看怎么给iTerm2加上solarized配色。

首先,将solarized下载到本地:

git clone git@github.com:altercation/solarized.git

可以看到,里面包罗万象,这里我们要使用的是iterm2-colors-solarized目录下的,包括Solarized Dark.itermcolorsSolarized Light.itermcolors两个配置文件。

配色面板.png

打开Preferences->Profiles->Color面板,在Color Presets中将以上两个配置方案导入,然后选择Solarized Dark或者Solarized Light即可。一般推荐使用Solarized DarkSolarized Light有种亮瞎的感觉。配色搞定后,终端是这样子的:

iTerm2-淡妆版.png

看着这样柔和的颜色,眼睛就不会很容易就累了。

zsh

shell提示符高亮及git代码状态展示是怎么实现的呢?这就要说到强大的zsh了。不废话,Mac下应该是内置的了;Linux下运行apt-get install zsh即可安装;Windows下烫烫烫烫烫。

配置

接下来,用oh-my-zsh来武装zsh,一行命令搞定:

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

主题

oh-my-zsh中提供了多套主题可供选择,有不同的输出样式及配色。默认应该是robbyrussell,感觉中规中矩没啥亮点。翻看了一下,发现了agnoster主题,感觉非常入眼。

接下来,编辑~/.zshrc,找到变量ZSH_THEME将其赋值改为agnoster即可。操作完毕,发现离目标很近了:

zsh-乱码.png

除了有些字体显示异常,什么鬼?

字体

为了显示正常,需要安装powerline字体,方法如下:

git clone git@github.com:powerline/fonts.git
cd fonts
./install

然后,在iTerm2->Preferences->Profiles->Text面板中将Non-ASCII Font改成Roboto Mono Powerline,显示就正常了!

文本面板.png

vim

vim配置这个话题有点大,包括:代码静态检查、高亮、文件树等等。理论上,通过插件,可以将vim打造成一个IDE,后续有空专门介绍一下。这节聚焦在:vim配色主题。

这里还是使用solarized配色方案:

mkdir -p ~/.vim/colors
cd solarized
cp vim-colors-solarized/colors/solarized.vim ~/.vim/colors/

编辑~/.vimrc文件,加上:

syntax enable
set background=dark
colorscheme solarized

这样,打开vim看到的就是文件开头图片显示的效果了。

自动化配置

如果只在自己的电脑上配置,手工操作一遍是没有问题的。但是,现实是,每个人可能都有多个不同的开发环境:自己的PC、公司的PC、线上的机器等等。每台机器都这样手工配置一遍,繁琐而且容易出错,感觉不敢想。

程序猿是一种有懒癌的动物,一件事情绝不重复做第二遍。如果,可以将以上配置操作脚本化,在一个新的机器环境,跑一下脚本就搞定一切,那多好!这就是我维护一个conf代码仓库的初衷。

conf提供一个脚本,install用来按照各种配置。比如,运行以下命令,zshvim的配置就安装完毕了。

cd conf
./install zsh
./install vim

当然了,conf完全是按照我个人的喜好定制的,可能并不适合你。尽管如此,你可以参考它打造属于自己的自动化配置工具。时间应该用来做有趣的事情,而不是浪费在简单的重复中