Oh-My-Zsh

前序

mac默认的shell是bash,所以需要先修改为zsh

sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)

修改时会提示你输入密码。

安装

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

安装配置

Oh-My-Zsh powerlevel9k 主题https://github.com/bhilburn/powerlevel9k):

克隆该仓库到 oh-my-zsh 用户自定义主题目录

git clone https://github.com/Powerlevel9k/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

编辑zshrc配置

#修改主题
vim ~/.zshrc
将ZSH_THEME="XXX"改为

(下面---分割线完整复制)

看到了乱码, 配置字体

方法一(无图标,最快)
git clone https://github.com/powerline/fonts.git --depth=1
cd fonts
./install.sh
cd ..
rm -rf fonts

保存后, 重新加载一下配置
source ~/.zshrc
打开 iTerm2 终端,依次选择菜单栏:iTerm2 –> Preferences –> Profiles –> Text –>font–>Roboto Mono for Powerline注意看图,然后就能用啦~

方法二(有图标,自用)

使用brew执行(PS没DL特别特别慢):

brew tap caskroom/fonts
brew cask install font-hack-nerd-font

安装成功后需要vim ~/.zshrc添加一句:

# 下面这个加的配置字体为nerd
POWERLEVEL9K_MODE="nerdfont-complete"

需要在 iTerm2 中配置一下,在 iTerm2 -> Preferences -> Profiles -> Text -> Font -> Change Font 栏位中,Text 下面勾选 Use a different font for non-ASCII text,然后再选择字体以及设置字体大小,需要注意的是 Font 和 Non-ASCII Font 所选择的字体和字体大小必须一致为14,否则会出现显示异常。

安装插件

自动提示插件zsh-autosuggestions

输入命令时可提示自动补全(灰色部分),然后按键盘 → 即可补全

使用以下命令安装

git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

语法高亮zsh-syntax-highlighting

日常用的命令会高亮显示,命令错误显示红色,如下图

使用以下命令安装

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

colors

colors 是一个 Ruby 实现的脚本,它可以配合 powerlevel9k 显示电脑上的文件图标(应该是通过后缀判断的),效果如下:

安装命令:sudo gem install colorls
如果你安装了colors的话,需要在其配置文件中中再加入:

alias ls='colorls'
alias ll='colorls -l'

autojump

这个插件主要帮助我们记住目录,一键直达。只要你脑海里有目录的几个字母,然后使用j [你知道的]按下 tab 即可,不用cd cd cd慢慢找。举个栗子:

我使用cd进入了打包好的这个目录,还进入了Desktop目录。

    cd /Users/dx/Desktop/打包好的 

如果用autojump的话,现在想进入打包好的目录只需要j 打包好的即可,一般我们都会按下tab确定目录位置,当遇到多个类似的目录名的时候它会提示你输入数字进入。

安装

    brew install autojump 

安装后添加到autojumpzsh的 插件配置(plugins)里,再追加一句命令:

    [[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh 

让配置文件生效即可。

修改配置

执行vim ~/.zshrc把plugins=(git)修改为下图

如果你安装了colors的话,需要在其他行中再加入:

alias ls='colorls'
alias ll='colorls -l'

执行source ~/.zshrc即可生效

一些自带插件

无需下载,在~/.zshrc直接填入即可~也可以参考下官方文档
z

这也是个自带的但是没有开启的插件。为什么单独把它拿出来讲呢?因为太好用了,没有它我根本就不想用命令行。简直就是可以无脑跳跃,比如你经常进入~/Documents目录,按下 z doc 一般它就可以跳进去了(当然首先你得用一段时间让它积累一下数据才能用)。类似的插件还有好几个比如autojump,fasd,这类东西好像叫 FS Jumping,这里有个完整列表:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins-Overview#fs-jumping

d

在 fish shell 里你可以按alt 加左右箭头随意穿梭于历史记录中,就像 GUI 文件浏览器的
前进,后退。zsh 没有这么好用,但是按一下 d 再回车你会看到最近的历史记录,然后你就可以通过数字比如 1, 2 之类的返回到某个历史记录中了。也是非常好用的。

zsh-autosuggestions

官方的介绍是Fish-like fast/unobtrusive autosuggestions for zsh,没错,这是模仿fish shell 的一个插件,作用基本上就是根据历史记录即时提示。没有这个东西让我感觉自己很盲目。没有用过 fish 的同学可能觉得它有点奇怪,但是一旦适应它以后就会发现它会大幅度的提高效率(按 ctrl+E 是正确姿势)。注意:它不是 oh-my-zsh 自带的,大家可以去github看它的安装说明。

自带的 Git Aliases

git 插件是默认开启的,大家可能注意到它能够自动补全以及显示所在 branch。对于一个 git 重度用户,一些 aliases 是不可缺少的。相信我,一旦习惯了 aliases,就会觉得原来敲那么一大堆命令真是不能忍了(即使它能够自动补全)。下面列一些我最常用的(当然也是 oh-my-zsh 自带的,更多请看wiki):

AliasCommand

AliasCommand
ggit
gstgit status
gagit add
gpgit push
gcgit commit -v
gc!git commit -v --amend

sublime

已经内置直接启用即可

作用

在命令行使用Sublime Text打开文件、项目

命令作用
st打开 sublime
st + 文件夹打开该文件夹
st + 文件打开该文件
stt打开当前的文件夹,相当于 st .
sst管理员权限 相当于 sudo st
其他
  • zsh_stats可以看到你的使用频率前 20 的命令是什么!
  • take看看which take就知道它有什么用了
  • clipcopyclippaste,剪贴板和命令行的交互
小结
  • 连续按两次tab会补全列表,补全项可以使用ctrl+n/p/f/b上下左右切换
  • 输入目录名即可进入,不用cd了,输入..即可到上级目录,返回上次目录输入-
  • 输入 d 即可看到目录列表
  • 智能的命令纠错功能(需开启 ENABLE_CORRECTION 配置)
  • Cmd + Shift + H可以查看剪切板的历史记录
  • Cmd + Option + B可以利用时间轴来查看之前输入的命令

DL加入zsh中

小记:按下列方法可让终端走,#启动终端DLproxy#关闭终端DLunproxy

执行vim ~/.zshrc
添加如下DL配置:

# proxy list
alias onssr='export all_proxy=socks5://127.0.0.1:1086'
alias offssr='unset all_proxy'

PS:注意是socks5端口,看这的端口:


:wq保存退出

source ~/.zshrc

使用onssr前先查看下当前的ip地址:

curl ip.cn
当前 IP:112.64.xxx.xx 来自:上海市 联通

或者

~ curl cip.cc
IP    : 140.206.97.42
地址    : 中国  上海

数据二    : 上海市 | 联通

URL    : http://www.cip.cc/140.206.97.42

执行:

#启动终端
proxy
curl ip.cn
当前 IP:47.89.xx.xxx 来自:香港特别行政区 阿里云
#如果不能用,就用
curl cip.cc
IP    : 45.78.47.19
地址    : 美国  加利福尼亚

数据二    : 美国 | 加利福尼亚州洛杉矶市 IT7 Networks

URL    : http://www.cip.cc/45.78.47.19

没问题,终端走了,brew update顺畅了- -

如果不需要走,执行:

#关闭终端
offssr
curl ip.cn
当前 IP:112.64.xxx.xx 来自:上海市 联通
最后修改:2020 年 12 月 24 日
如果觉得我的文章对你有用,请随意赞赏