Ubuntu下安装oh-my-zsh
[转]http://www.jianshu.com/p/9a5c4cb0452d
http://blog.csdn.net/z3512498/article/details/51245853
默认状况下Termial样式
Ubuntu系统默认状况下的终端样式如下:

有个知名的神奇:Oh-My-Zsh 可以让终端及美观又实用:

今天就一步步的记录我安装Oh My Zsh 的过程
安装Oh-My-Zsh
安装Oh-My-Zsh之前必须安装zsh,否则会收到如下提示:

安装zsh:
-
sudo apt-get install zsh安装zsh -
zsh --version确认是否安装成功 -
sudo chsh -s $(which zsh)设置zsh为默认shell - 注销重新登录
设置完成之后,终端变成如下样式:

-
echo $SHELL确认zsh是否是默认SHELL,输出/usr/bin/zsh
安装Oh-My-Zsh
- 使用curl方式安装:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- 默认安装完成Oh-My-Zsh的样式如下:(重启终端后有效)

-
Oh-My-Zsh的默认配置文件在:
~/.zshrc -
编辑
~/.zshrc修改主题为:agnoster,效果:
修改:

修改后:

修改Oh-My-Zsh agnoster匹配字体
从上图我们可以明显的发现,显示效果中有乱码,这是因为字体没适配。我们需要下载支持Powerline的字体。
- 下载地址:https://github.com/powerline/fonts
- 下载完成双击安装
默认Ubuntu 终端使用的是 Ubuntu mono regular字体 13字号,体会成Ubuntu Mono derivative Powerline字体后,效果如下:

进一步优化
精简 user@hostname:
1、网上对这个的处理大多是打开bashrc然后修改PS1或者重新定义修改PS1,但oh_my_zsh的shell是zsh,明显不能在.bashrc中改。
不信可以在终端输入
echo $PS1
或者
echo $PROMPT
可以看到其定义为
%{%f%b%k%}$(build_prompt)
这和bashrc里PS1的定义是不同的,根本无从下手。于是又有人说那就在.zshrc中改咯,我试过,发现改了以后终端的显示会不正常,比如linux的指令都有返回值,一般为0,其他表示运行错误之类。oh_my_zsh是可以用符号提醒用户的上一个指令是否执行成功的,如果在.zshrc重新定义PS1,这个功能将会失效。所以只能用特别的方式啦。
3、解决办法:按照1中链接的安装方式,oh_my_zsh的主题和设置会被复制到主目录下,只要在终端输入
cd ~/.oh-my-zsh/themes
然后输入
echo $ZSH_THEME
查看自己主题,我的是agnoster,然后输入
vi agnoster.zsh-theme
可以看到最下面对build_prompt的定义为
## Main prompt build_prompt() { RETVAL=$? prompt_status prompt_virtualenv prompt_context prompt_dir prompt_git prompt_hg prompt_end }
build_prompt的定义像个结构体(实际是什么我不太懂),但agnoster.zsh-theme中对build_prompt里的每个成员都有定义,从prompt_context的定义
# Context: user@hostname (who am I and where am I) prompt_context() { if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m" fi }
可以看出这个就是定义用户名和域名的地方,只要把build_prompt的定义修改为如下:
## Main prompt build_prompt() { RETVAL=$? prompt_status prompt_virtualenv #prompt_context prompt_dir prompt_git prompt_hg prompt_end }
即把prompt_context用#注释掉即可,以后需要修改其他东西也可到这里修改。

浙公网安备 33010602011771号