Mac终端美化(iterm2+oh-my-zsh+vim)
iterm2设置主题:Agnoster 主题
1. Agnoster 主题安装
a. 使用 vim 打开~/.zshrc,然后将 ZSH_THEME="robbyrussell" 改成 ZSH_THEME="agnoster"
b. 安装Powerline 对应的字体库
为了展示 Agnoster 主题提示符里的三角形,需要 Powerline 字体库的支持,具体步骤如下:
git clone https://github.com/powerline/fonts.git cd fonts ./install.sh
c. 修改 iterm2 字体配置
进入:iTerm2 > Profiles > Text > Font,修改字体为:Meslo LG S DZ Regular for Powerline。

3. 修改文件夹显示颜色
个人不太喜欢主题中默认文件夹的颜色,所以使用如下的命令对其进行修改。
export CLICOLOR=1 export LSCOLORS="Fxbxaxdxcxegedabagacad"
vim + oh-my-zsh + git配置开发环境
vim配置
安装vundle
使用vundle作为插件管理器,使用前先安装vundle
mkdir -p ~/.vim/bundle git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
配置 .vimrc
编辑~/.vimrc文件,写入以下内容
set nocompatible
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
" code complete
Plugin 'davidhalter/jedi-vim'
Plugin 'ervandew/supertab'
" syntastic check
Plugin 'nvie/vim-flake8'
Plugin 'scrooloose/syntastic'
" colorscheme
Plugin 'altercation/vim-colors-solarized'
Plugin 'luochen1990/rainbow' , {'for': 'python'}
Plugin 'morhetz/gruvbox'
" code format
Plugin 'mindriot101/vim-yapf'
" file search
Plugin 'ctrlpvim/ctrlp.vim'
call vundle#end()
filetype plugin indent on
colorscheme gruvbox
" for code complete
let g:jedi#auto_initialization = 1
let g:jedi#completions_enabled = 0
let g:jedi#show_call_signatures = 1
" for <leader>
let mapleader = ","
let g:mapleader = ","
" goto definition
let g:jedi#goto_definitions_command = ""
let g:jedi#goto_assignments_command = "<leader>g"
let g:jedi#goto_command = "<leader>d"
" file search
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
" serach file in MRU
nmap <Leader>f :CtrlPMRUFiles<CR>
" search file in BUffer
nmap <Leader>b :CtrlPBuffer<CR>
set number
set cursorline
set fileencoding=utf-8
set fencs=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set history=500
let python_highlight_all=1
set background=dark
set t_Co=256
set laststatus=2
set viminfo+=!
set showmatch
set matchtime=5
set ignorecase
set hlsearch
set autoindent
set cindent
set tabstop=4
set expandtab
set softtabstop=4
set shiftwidth=4
set autochdir
set autoread
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
autocmd! FileType python match OverLength /\%89v.\+/
保存后打开vim,在normal模式下输入
:PluginInstall
vundle会自动安装配置的插件,之后就可以愉快地使用啦~
使用
配置后的效果如图

使用比较简单,主要是flake8和jedi的使用
flake8用于检查代码,编辑完后按快捷键F7进行检查
jedi用于代码补全和跳转,在函数名或者类名处按下, + d会跳转到定义处
ctrp用于文件搜索和跳转,按下, + f 调出搜索框,输入文件名进行搜索,按下, + b调出缓冲区文件,此快捷键配合
, + d可以在定义处和调用处来回跳转,非常好用
zsh配置
zsh是区别于bash的一种shell,比bash更好用
安装zsh
oh-my-zsh是基于zsh的一个主题,On My Zsh 官方网站 给出了三种安装方式,任选一种即可:
a. curl 安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
b. wget安装
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
c. fetch 安装
sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式。它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作。给我们一种全新的方式使用命令行。Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。
P.S. 安装 Oh My Zsh 的前提是需要安装 Zsh,请自行查阅相关安装方法。
配置.zshrc
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="/root/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="robbyrussell"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to automatically update without prompting.
# DISABLE_UPDATE_PROMPT="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS=true
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
history
zsh-syntax-highlighting
zsh-completions
extract
)
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
bindkey ',' autosuggest-accept
source $ZSH/oh-my-zsh.sh
unsetopt share_history
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
export TERM=xterm-256color
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=247'
# for autojump
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
安装插件
上面我们自己配置了一些插件,需要手动下载
安装zsh-autosuggestions
git clone git clone https://gitclone.com/github.com/zsh-users/zsh-autosuggestions.git /Users/username/.zsh/zsh-autosuggestions/
安装zsh-syntax-highlighting和zsh-completions
cd ~/.oh-my-zsh/plugins git clone https://github.com/zsh-users/zsh-syntax-highlighting.git git clone https://github.com/zsh-users/zsh-completions.git
刷新.zshrc文件
source ~/.zshrc
使用
上面步骤完成后,就可以愉快地使用啦,效果如下图

提示符会显示当前的仓库和分支名,命令行也会自动补全,非常好用
git配置
原始的git没有颜色区分,看着不舒服,在~/.gitconfig里可以配置颜色,这样git status和git diff就能很容易地看出修改来了
[user] email = handsome@gmail.com name = handsome [alias] br = branch [color] branch = auto diff = auto status = auto [color "branch"] current = green local = white remote = green [color "diff"] meta = yellow bold frag = magenta bold old = red bold new = green bold [color "status"] added = green changed = red untracked = red
git的使用效果留给大家自己去体验
这就是我自己的配置,如果大家有更好的配置可以告知我~
oh-my-zsh隐藏用户名或者主机名(主题去掉git目录多级显示)
oh-my-zsh隐藏用户名或者主机名
修改vim ~/.zshrc文件,在文件底部增加
隐藏用户名和主机名
prompt_context() {}
只保留用户名,隐藏主机名
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
只保留主机名,隐藏用户名
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$HOST"
fi
}
最简化展示,加时间
prompt_context() { if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then DATE=""`date "+%Y-%m-%d %H·%M·%S"`"" prompt_segment black default "%(!.%{%F{yellow}%}.)$DATE" fi }
修改后执行 source ~/.zshrc才能生效,注:可以去掉$HOST避免重复显示路径。
其他zsh配置
zsh 的转义变量(prompt variables 和 conditional substrings):
下面是一些比较常用的转义变量,更多详细的转义指令可以到zsh Prompt-Expansion查询
| 转义变量 | 描述 |
|---|---|
| %T | 系统时间(时:分) |
| %* | 系统时间(时:分:秒) |
| %D | 系统日期(年-月-日) |
| %n | 你的用户名 |
| %B - %b | 开始到结束使用粗体打印 |
| %U - %u | 开始到结束使用下划线打印 |
| %d | 你目前的工作目录 |
| %~ | 你目前的工作目录相对于~的相对路径(可能在某些zsh版本可能造成乱码) |
| %M | 计算机的主机名 |
| %m | 计算机的主机名(在第一个句号之前截断) |
| %l | 你当前的tty |
举个例子~
在~/.zshrc 修改之前的PS1
export PS1="[%T] %~ %# "
相应效果如下:
[2:00] ~ % sudo su [sudo] password for diaoshe: [2:00] /home/diaoshe #
加点颜色
配置更加个性化的命令提示符<——–说明文档!
在~/.zshrc 中删除之前添加的 PS1 并添加如下语句
#开启颜色 autoload -U colors && colors #配置提示符模式。。 其实配置之前的PS1也是可以的 但是为了尊重说明文档。。。 PROMPT="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[green]%}%1|%~ %{$reset_color%}%#>" #在行末显示上一命令的返回状态 RPROMPT="[%{$fg_bold[yellow]%}%?%{$reset_color%}]"

浙公网安备 33010602011771号