温馨美观的mac终端, iTerm2+zsh+powerlevel9k+vim+virtualenv

目录

  • 前言
  • homebrew
  • iTerm2
  • oh-my-zsh
  • 配色
  • 毛玻璃
  • 字体
  • powerlevel9k
  • zsh插件
  • vim设置
  • 配色
  • 代码折叠
  • 插件管理和使用
  • vim-powerline
  • 多行注释
  • python配置
  • 修改pip源
  • virtualenv配置
  • virtualenvwrapper使用

前言

最近mac不知道怎么了, 估计是新品又要到来了, 水果决定解决老机型过于流畅的bug, 出现各类问题, 好比屏幕底部会忽然花屏, 一次约0.1s, 或者是界面卡死之类的. 还有就是插上扩展坞网速就为零. 因此趁着中秋, 重装一下, 而后这些bug都没了(我太难了.jpg). 顺带写下这篇配置篇, 免得之后麻烦. 更新了vim配置内容javascript


homebrew

每次提到homebrew, 除了必备神器以外, 还有就是谷歌: 咱们90%的工程师使用您编写的软件(Homebrew), 可是您却没法在面试时在白板上写出翻转二叉树这道题, 这太糟糕了.(手动滑稽)css

安装也很简单:html

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
复制代码

iTerm2

你能够从官网下载iterm2, 也能够用homebrew:java

brew install iTerm2
复制代码

而后你会发现一个很是很是朴素的终端, 基本和mac自带的终端差很少, 很少说, 上一张素颜照:python

image

接下来, 你就会和我一块儿, 将它打形成一个性冷淡御姐, 你懂我意思吧(老奸巨猾.jpg)linux


oh-my-zsh

指令安装:git

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
复制代码

而后从bash切换到zsh, 其实我安装完成以后, 它自动切换了:github

chsh -s /bin/zsh
复制代码

image


配色

iTerm2自带了一些配色, 但那确定是不够的.面试

mkdir ~/iterm2 ; cd ~/iterm2
git clone https://github.com/mbadolato/iTerm2-Color-Schemes
复制代码

建一个目录, 叫什么都行, 而后下载这个配色方案包, 以后经过command + ,打开配置, 导入刚才下载的配色:vim

image
image

而后你就收获了满满的幸福:

image

而后你可使用mv iterm2 .iterm2指令隐藏这个文件夹, 也能够不隐藏, 看你喜欢了.


毛玻璃

而后能够调整一下透明度和模糊度, b格满满的毛玻璃效果就出现了:

image
image


字体

字体实际上是很是很是重要的, 回忆一下window终端的糟糕字体吧, 其实字体是很是影响整个系统的观感的, 从软件的角度来讲也是如此.

这里安装nerd-fonts字体, 它的好处是还支持图标.

image

brew tap caskroom/fonts
brew cask install font-hack-nerd-font
复制代码

而后在配置文件里面勾选, 注意, ascii和非ascii要同样大, 不同会形成以后图标有些不对齐:

image


powerlevel9k

powerlevel9k真的是一个很酷的东西.

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
复制代码

而后打开zsh的配置文件, 将主题设置进去:

vim ~/.zshrc
ZSH_THEME="powerlevel9k/powerlevel9k"
复制代码

退出来以后更新一下zshsource ~/.zshrc. powerlevel9k自己还有许多设置内容, 这里我简单设置一下, 你们能够按需设置.

POWERLEVEL9K_MODE="nerdfont-complete"
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs virtualenv)
复制代码

个人设置第一行表明用以前的nerd-fonts字体

第二行设置左边的图标显示内容, 分别是ssh, 目录和git等版本管理

第三行设置右, 依次是状态, 是不是root, 做业指示器, py的环境. 更多设置, 能够参看这篇文章


zsh插件

多的不说, 语法高亮和指令提示确定要的.

brew install zsh-syntax-highlighting
brew install zsh-autosuggestions
复制代码

而后在.zshrc里面补上以下内容:

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
复制代码

vim设置

我我的仍是很喜欢用vim的, 只要不是太复杂的环境, 我都尽可能使用vim进行代码编辑. 来看看一些设置和配置吧. 固然, 你能够直接打形成IDE homebrew进行安装:

brew install vim
复制代码

而后我先贴出所有的vimrc配置文件内容:

" vundle 环境设置 filetype off set rtp+=~/.vim/bundle/Vundle.vim " 插件列表开始
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'Lokaltog/vim-powerline'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'derekwyatt/vim-fswitch'
Plugin 'kshenoy/vim-signature'
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/indexer.tar.gz'
Plugin 'vim-scripts/DfrankUtil'
Plugin 'vim-scripts/vimprj'
Plugin 'dyng/ctrlsf.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'scrooloose/nerdcommenter'
Plugin 'vim-scripts/DrawIt'
Plugin 'SirVer/ultisnips'
Plugin 'derekwyatt/vim-protodef'
Plugin 'scrooloose/nerdtree'
Plugin 'fholgado/minibufexpl.vim'
Plugin 'gcmt/wildfire.vim'
Plugin 'sjl/gundo.vim'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'suan/vim-instant-markdown'
Plugin 'lilydjwg/fcitx.vim'
" 插件列表结束 call vundle#end() filetype plugin indent on " 定义快捷键的前缀, 即<Leader>
let mapleader=";"

" 设置状态栏主题风格 let g:Powerline_colorscheme='solarized256' " 基于缩进或语法进行代码折叠
set foldmethod=syntax
" 启动 vim 时关闭折叠代码 set nofoldenable " 打开语法高亮
syntax on

" 使用配色方案 colorscheme gruvbox " 打开文件类型检测功能
filetype on

" 不一样文件类型采用不一样缩进 filetype indent on " 容许使用插件
filetype plugin on
filetype plugin indent on

" 关闭vi模式 set nocp " 与mac共享剪贴板
set clipboard+=unnamed

" 取消VI兼容 set nocompatible " 显示行号
set nu

" 历史命令保存行数 set history=1000 " 当文件被外部改变时自动读取
set autoread 

" 取消自动备份及产生swp文件 set nobackup set nowb set noswapfile " 容许使用鼠标点击定位
set mouse=a
" 容许区域选择 set selection=exclusive " 高亮光标所在行
set cursorline
" 取消光标闪烁 set novisualbell " 老是显示状态行
set laststatus=2
" 状态栏显示当前执行的命令 set showcmd " 标尺功能, 显示当前光标所在行列号
set ruler
" 设置命令行高度为2 set cmdheight=2 " 粘贴时保持格式
" set paste " 高亮显示匹配的括号
set showmatch
 
" 在搜索的时候忽略大小写 set ignorecase " 高亮被搜索的句子
set hlsearch
 
" 在搜索时, 输入的词句的逐字符高亮 set incsearch " 继承前一行的缩进方式
set autoindent
 
" 为c程序提供自动缩进 set smartindent " 使用c样式的缩进
set cindent
 
" 制表符为4 set tabstop=4 " 统一缩进为4
set softtabstop=4
set shiftwidth=4
 
" 容许使用退格键 set backspace=eol,start,indent set whichwrap+=<,>,h,l " 取消换行
set nowrap
 
" 在被分割的窗口间显示空白 set fillchars=vert:\ ,stl:\ ,stlnc:\ " 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 设定默认解码 set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 " 设定编码
set enc=utf-8
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
 
" 自动补全 filetype plugin indent on set completeopt=longest,menu " 自动补全命令时候使用菜单式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complet
复制代码

配色

其实以前iTerm已经配色过了的, 可是vim有本身的独立配色. 用法也很简单: 用以下命令建立.vim/colors目录, 而后下载配色文件:

mkdir -p ~/.vim/colors ; cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim
复制代码

打开~/.vimrc, 加入colorscheme jellybeans, 比方说, 我用了这个jellybeans.vim主题配色. 这里再推荐一个gruvbox主题, 效果以下:

image


代码折叠

使用自带代码折叠

" 基于缩进或语法进行代码折叠 "set foldmethod=indent
set foldmethod=syntax
" 启动 vim 时关闭折叠代码 set nofoldenable 复制代码
  • 进入vim命令模式, za便可折叠当前块
  • zM关闭全部折叠
  • zR打开全部折叠

image


插件管理和使用

安装管理工具vundle:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
复制代码

打开.vimrc, 加入下列插件内容:

" vundle 环境设置 filetype off set rtp+=~/.vim/bundle/Vundle.vim " vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'Lokaltog/vim-powerline'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'derekwyatt/vim-fswitch'
Plugin 'kshenoy/vim-signature'
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/indexer.tar.gz'
Plugin 'vim-scripts/DfrankUtil'
Plugin 'vim-scripts/vimprj'
Plugin 'dyng/ctrlsf.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'scrooloose/nerdcommenter'
Plugin 'vim-scripts/DrawIt'
Plugin 'SirVer/ultisnips'
Plugin 'derekwyatt/vim-protodef'
Plugin 'scrooloose/nerdtree'
Plugin 'fholgado/minibufexpl.vim'
Plugin 'gcmt/wildfire.vim'
Plugin 'sjl/gundo.vim'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'suan/vim-instant-markdown'
Plugin 'lilydjwg/fcitx.vim'
" 插件列表结束 call vundle#end() filetype plugin indent on 复制代码

进入vim, 命令模式下键入:PluginInstall, 便可自动安装:

image

vim-powerline

利用插件Lokaltog/vim-powerline, 设置状态栏风格:

" 设置状态栏主题风格 let g:Powerline_colorscheme='solarized256' 复制代码

image

多行注释

多行注释确定要的. 首先添加按钮, 你能够添加本身顺手的, 我这里是;:

" 定义快捷键的前缀, 即<Leader> let mapleader=";" 复制代码

而后cc注释选中区域, 你能够用v进入选中模式选择多行. cu取消注释

代码补全

vim一样自带了代码自动补全, 使用也很简单, ctrl + p便可, 而后继续ctrl + p是向上, ctrl + n是向下, 固然了, 有更加复杂的插件进行提示. 最终效果能够达到vs的等级, 可是我我的认为不必. 若是之后有这方面的需求, 回来更新文章内容的.

image

那事实上, 还有其余按键, 你用ctrl + x, 便可显示所有提示, 看所示图的最下面一行, 能够ctrl + ], ctrl + D等等.

image


python配置

修改pip源

首先改一下pip的源:

mkdir .pip ; cd .pip
vim pip.conf
复制代码

替换阿里源:

[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
复制代码

或者你喜欢的:


virtualenv配置

我使用的是virtualenv, 若是你是其它环境也是能够的:

pip3 install virtualenv
复制代码

使用virtualenv --version看下是否安装成功.

virtualenvwrapper使用

Virtaulenvwrapper是对virtualenv的封装, 能够更方便地管理虚拟环境:

pip3 install virtualenvwrapper
复制代码

创建一个环境目录, 比方说mkdir ~/pyEnv 打开.zshrc文件, 输入以下内容:

export WORKON_HOME=~/pyEnv
source /usr/local/bin/virtualenvwrapper.sh
复制代码

source ~/.zshrc更新配置文件, 会有以下图内容:

image

以后就能欢乐地创建环境了:

  • 创建环境: mkvirtualenv env1
  • 删除环境: rmvirtualenv env1
  • 切换环境到其它环境: workon env2
  • 退出环境: deactivate
  • 列出全部环境: lsvirtualenv -b
  • 查看环境里的轮子: lssitepackages

image
相关文章
相关标签/搜索