MAC终端zsh配置

MAC平台下的zsh还是最好用的,不过配置起来确实略微麻烦,尤其是涉及到FQ访问gitHub比较麻烦,没有网络还真不行。

1 下载安装iTerm2

官网地址: http://www.iterm2.com/

设置iTerm2无限滚屏:怕错过什么重要信息,那设置成无限滚屏吧!

Preferences - Profiles - Terminal - Scrollback Buffer - Unlimited scrollback

 【常用快捷键

  • ⌘ + k (command + k): 清屏(有时需要查找特定信息,避免上一次输出的干扰,可以先清屏再执行)
  • ⌃ + a (control + a):光标放行首(麻麻再也不担心我把光标移动到最后要靠手速了。)
  • ⌃ + e ( control + e):光标放行尾
  • ⌘ + f (command + f):(调出查找框)查找
  • ^ + c (control + c):取消当前行(当前行已经输入很多了,想删除,不需要按住delete键逐字符删滴- -)
  • ⌘ + enter (command + enter):切换全屏(沉浸于shell中,慢慢爱上敲回车的感觉……但是,忽地一下,shell铺满屏幕了!如果不知道这个快捷键的话,有点儿秀不起来呀。——个人感觉,手速快的时候,误触还是时有发生滴。)

2 安装HomeBrew

大部分Mac系统已经自带Homebrew,查看是否安装方法:

brew --version

若提示无brew命令,则执行如下命令安装,可以参照官网https://brew.sh/

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

3 更换终端默认Shell为zsh

Bash作为大多数系统默认安装的Shell,大家都多少有所接触,Zsh和Bash类似都是一个Shell,但是Zsh更注重用户体验和与人的交互,OS X默认也安装好了Zsh,然而你想自己从头开始配置一个顺手的Zsh是比较浪费时间的,有人已经帮我们配置好了,这个流行的Zsh配置叫---Oh My ZSH!,直观的效果如下图所示,代码开源在github

Mac OS X默认已经安装好了Zsh,你可以打开终端,输入zsh --version来确认,如果没有安装,请参考这个文档

打开终端输入下面的命令,切换默认Shell为Zsh:

chsh -s /bin/zsh

关闭终端重新打开后,你将默认使用zsh作为终端Shell。然而你会发现,终端并没有变得多酷炫,接着往下走,安装Oh My ZSH!

4 安装oh-my-zsh

使用以下命令可以安装:

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

我自己安装的时候是开了阿里郎代理,但是终端不知道为啥总是报错说 SSH:443 拒绝访问。但是可以直接用如下命令把仓库下载下来(或者直接下载zip文件也行):

git clone git@github.com:ohmyzsh/ohmyzsh.git

然后把上面那个install.sh 直接用浏览器打开复制到文件中,直接用sh执行。脚本中的逻辑是先把 ohmyzsh.git 克隆到~/.oh-my-zsh 目录,然后执行后面到初始化设置逻辑。既然仓库已经下载并拷贝过去了,那么就将install.sh 中下载和检查到逻辑注释掉,仅执行后半部分的初始化设置逻辑好了。

5 修改oh-my-zsh 主题

ls ~/.oh-my-zsh/themes
vim ~/.zshrc           // 修改 ZSH_THEME的值,经典配色是agnoster
source ~/.zshrc        // 生效

// 如果想获得更多的主题可以从https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster下载

6 解决乱码问题

由于agnoster和一些其他主题显示需要Powerline字符集支持,需要下载新的字符集

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

打开iTerm2:偏好设置 -> Profiles -> Text -> change Font -> Roboto Mono for Powerline

7 隐藏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
}

8 厉害的zsh插件

(1) AutoJump  -  从任意目录一键跳转任意目录

下面着重介绍一个好用的插件AutoJump,举个连个栗子介绍下AutoJump的强大。

正常情况下需要一层层敲入

cd /Users/fanyu/Workspace/youku/new_reform/AppWrapper/OnePlayer

如果用autojump 则只需敲 j OneP ,两下shift 会自动生成关联,选择对应数字就能进入。autojump 支持在任意目录进入任意目录

【安装方法可参考】https://github.com/wting/autojump/wiki

(2) zsh-autosuggestions

计算题:我输入了echo hello指令,然后又输入了19条指令。接着又输入echo world指令。这个时候,我想找到历史指令echo hello,需要按几次上键?
答案是:输入echo按*两下*上键就可以啦。

autosuggestions插件会记录已经执行过的的指令。下次输入指令的时候,会智能提示。
额外地,只输入几个字符,然后按上键查找历史指令的时候,结果集合里所有的指令都是以已输入字符开头的。

(3) zsh-syntax-highlighting

问题:mkdirmkdri有什么不一样。有时候,敲错了指令,但是出错了才意识到。zsh-syntax-highlighting可以提前发现这个小问题

zsh-syntax-highlighting插件做了一件极简的事情:认识的指令显示为绿色,不认识的指令显示为红色。(当然,不认识的指令继续按回车,得到的将是:command not found错误提示。)
额外地,它还能检查括号是不是匹配。

8.1 安装autojump

brew install autojump

 修改~/.zshrc文件,找到plugins字段,添加autojump。

默认是这样的:
plugins=(
  git
)

修改为:
plugins=(
  git
  autojump
)

 8.2 安装auto suggestions

git clone git://github.com/zsh-users/zsh-autosuggestions ~/Documents/.zsh-suggestions

ln -s ~/Documents/.zsh-suggestions ~/.oh-my-zsh/plugins/zsh-autosuggestions

修改~/.zshrc文件,找到plugins字段,添加suggestions。修改后的样子大概是这样:

plugins=(
  git
  autojump
  zsh-autosuggestions
)

 8.3 安装syntax hightlighting

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/Documents/.zsh-syntax-highlighting

ln -s ~/Documents/.zsh-syntax-highlighting ~/.oh-my-zsh/plugins/zsh-syntax-highlighting

 修改~/.zshrc文件,找到plugins字段,添加highlighting。修改后的样子大概是这样:

plugins=(
  git
  autojump
  zsh-autosuggestions
  zsh-syntax-highlighting
)
原文地址:https://www.cnblogs.com/kuliuheng/p/13791832.html