oh-my-zsh

参考链接:http://blog.csdn.net/yangcs2009/article/details/45720193

oh-my-zsh的主题:https://github.com/robbyrussell/oh-my-zsh/wiki/themes

oh-my-zsh的插件: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins-Overview#fs-jumping

基本安装

基于Unix操作系统(Mac, Linux),需要预先安装zsh。

如何检测是安装zsh:

zsh --version;

on-my-zsh 安装

一、自动安装

wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh

二、手动安装

1. 克隆仓库

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

2. 如果你已存在~/.zshrc文件,则备份现有的~/.zshrc文件

cp ~/.zshrc ~/.zshrc.orig

3. 创建一个新的zsh配置文件

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

4. 改变默认的Shell

chsh -s /bin/zsh

5. 重新启动你的终端(Terminal)

一些预览:

 

 

一些遇过的坑

不能把zsh设置为默认shell

如果真的遇到了,那么我们可以手动进入zsh,只需这样:

$ zsh
➜  ~ git:(master) ✗ 

另外,相关的alias可以复制到~/.zshrc文件里,最后使用source更新一下文件即可:

✗ source ~/.zshrc

配置文件

大部分配置都可以在配置文件中进行设置,这里我大概翻译一下,以及给出自己的一些使用偏好。

 

# ZSH的环境变量

export ZSH=/Users/dawang/.oh-my-zsh

# 主题设置

# 主题列表在 ~/.oh-my-zsh/themes/

# 如果设置为 "random", 每次开启都会是不同的主题

ZSH_THEME="agnoster"

# 如果想要大小写敏感,可以取消注释下面的一行

# CASE_SENSITIVE="true"

# 如果想要连接符不敏感,可以取消注释下面的一行。_ 和 - 将可以互换

# HYPHEN_INSENSITIVE="true"

# 如果不想要自动更新,可以取消注释下面的一行

# DISABLE_AUTO_UPDATE="true"

# 自动更新的时间间隔,单位是天,这里设置 30 天更新一次

export UPDATE_ZSH_DAYS=30

# 如果不想要 ls 命令输出带颜色,可以取消注释下面的一行

# DISABLE_LS_COLORS="true"

# 是否禁止更改终端标题,不要禁止,不然所有终端tab只显示zsh了,而不随着目录的改变而改变显示

# DISABLE_AUTO_TITLE="true"

# 自动纠正命令,不启用,不怎么好用

# ENABLE_CORRECTION="true"

# 按tab键补全命令的时候,如果没什么可补全的就会出现三个红点,更人性化显示,这里我们启用

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"

# 历史命令日期显示格式

# 有三种方式: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd",我比较习惯最后那种

HIST_STAMPS="yyyy-mm-dd"

# 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? (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)

# 插件设置,如果添加太多启动速度会比较慢

plugins=(git autojump)

[[ -s ~/.autojump/etc/profile.d/autojump.zsh ]] && . ~/.autojump/etc/profile.d/autojump.zsh

# 剩下部分比较不常改动

# User configuration

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin"

# export MANPATH="/usr/local/man:$MANPATH"

source $ZSH/oh-my-zsh.sh

# 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"

# ssh

# export SSH_KEY_PATH="~/.ssh/dsa_id"

# 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"

高级功能

常用快捷键

  • 命令历史记录
    • 一旦在 shell 敲入正确命令并能执行后,shell 就会存储你所敲入命令的历史记录(存放在~/.zsh_history 文件中),方便再次运行之前的命令。可以按方向键↑和↓来查看之前执行过的命令
    • 可以用 !!来执行上一条命令
    • 使用 ctrl-r 来搜索命令历史记录
  • 命令和文件补全(按tab键)
  • 命令别名
    • 可以简化命令输入,在 .zshrc 中添加 alias shortcut='this is the origin command' 一行就相当于添加了别名
    • 在命令行中输入 alias 可以查看所有的命令别名

一些比较好用的设置

 

alias cls='clear'

alias ll='ls -l'

alias la='ls -a'

alias grep="grep --color=auto"

alias -s html='vim' # 在命令行直接输入后缀为 html 的文件名,会在 Vim 中打开

alias -s rb='vim' # 在命令行直接输入 ruby 文件,会在 Vim 中打开

alias -s py='vim' # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似

alias -s js='vim'

alias -s c='vim'

alias -s java='vim'

alias -s txt='vim'

alias -s gz='tar -xzvf' # 在命令行直接输入后缀为 gz 的文件名,会自动解压打开

alias -s tgz='tar -xzvf'

alias -s zip='unzip'

alias -s bz2='tar -xjvf'

插件:

自带大部分 git 命令的缩写,命令内容可以参考 ~/.oh-my-zsh/plugins/git/git.plugin.zsh

Oh My Zsh 提供了一套系统别名(alias),来达到相同的功能。比如gst作为git status的别名。而且 Git 插件是 Oh My Zsh 默认启用的,相当于你使用了 Oh My Zsh,你就拥有了一套高效率的别名,而且还是全球通用的。是不是棒棒哒?下面是一些我常用的别名:

AliasCommand
gapagit add --patch
gc!git commit -v --amend
gclgit clone --recursive
gcleangit reset --hard && git clean -dfx
gcmgit checkout master
gcmsggit commit -m
gcogit checkout
gdgit diff
gdcagit diff --cached
gpgit push
grbcgit rebase --continue
gstgit status
gupgit pull --rebase

完整列表请参考:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git

osx

  • tab - 在一个新标签打开当前目录
  • cdf - cd到当前Finder目录
  • quick-look - 快速浏览特殊的文件
  • man-preview - 在Preview应用打开特定的man page
  • trash - 将特定的文件移到垃圾桶

使用技巧

  1. 连按两次Tab会列出所有的补全列表并直接开始选择,补全项可以使用 ctrl+n/p/f/b上下左右切换
  2. 命令选项补全。在zsh中只需要键入 tar -<tab> 就会列出所有的选项和帮助说明
  3. 命令参数补全。键入 kill <tab> 就会列出所有的进程名和对应的进程号
  4. 更智能的历史命令。在用或者方向上键查找历史命令时,zsh支持限制查找。比如,输入ls,然后再按方向上键,则只会查找用过的ls命令。而此时使用则会仍然按之前的方式查找,忽略 ls
  5. 多个终端会话共享历史记录
  6. 智能跳转,安装了 autojump 之后,zsh 会自动记录你访问过的目录,通过 j 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过 hadoop-1.0.0 目录,输入j hado 即可正确跳转。j --stat 可以看你的历史路径库。
  7. 目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。
  8. 在当前目录下输入 .. 或 ... ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。在你知道路径的情况下,比如 /usr/local/bin 你可以输入 cd /u/l/b 然后按进行补全快速输入
  9. 通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find。使用 **/ 来递归搜索
  10. 扩展环境变量,输入环境变量然后按 就可以转换成表达的值
  11. 在 .zshrc 中添加 setopt HIST_IGNORE_DUPS 可以消除重复记录,也可以利用 sort -t ";" -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history 手动清除

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值