打造高效个性Terminal(二)之 zsh

欢迎来我的博客阅读:
「打造高效个性Terminal(一)之 iTerm」
「打造高效个性Terminal(二)之 zsh」

oh-my-zsh

如果说iTerm塑造了一个婀娜多姿颜值高的貌美姑娘,那么zsh就是给她塑造了一个柔情侠骨百事通的女汉子之心。

简介 Introduction

对于zsh的作用,摘自池建强老师的一段:

目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史「终极 Shell」,但是由于配置过于复杂,所以初期无人问津,很多人跑过来看看 zsh 的配置指南,什么都不说转身就走了。直到有一天,国外有个穷极无聊的程序员开发出了一个能够让你快速上手的zsh项目,叫做「oh my zsh」,Github 网址是:https://github.com/robbyrussell/oh-my-zsh。

oh-my-zsh 是一个社区驱动用于管理zsh的框架,囊括了140多个主题,200多个可选插件(如rails, git, OSX, hub, brew, ant, php, python etc.)。

安装 Installation

via curl

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

via wget

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

配置 Configuration

zsh的配置主要集中在用户当前目录的.zshrc里,用vim或者你喜欢的其他编辑器打开这个文件,在里面可以修改主题、插件以及定义自己的环境变量等操作。

主题 Themes

用vim打开~/.zshrc中,可以看到这样配置

...
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="robbyrussell"
...

修改ZSH_THEME的值就可以更换主题。

默认的主题是robbyrussell,这个并不是最精彩,也并不是最简单的一个,只是对于其作者Robby来说最适合的一个。

可以通过访问~/.oh-my-zsh/themes/目录查看哪些可选的主题

$ tree themes
themes
├── 3den.zsh-theme
├── Soliah.zsh-theme
├── adben.zsh-theme
├── af-magic.zsh-theme
├── afowler.zsh-theme
├── agnoster.zsh-theme
...
0 directories, 141 files

更多关于各个主题的详细介绍见 zsh themes,另外还有不少并不是自带的主题,见more external themes

Powerline Fonts

如果你查看过zsh的主题列表的话,你会发现不少主题会有这样的样式,

打造高效个性Terminal(二)之 zsh_第1张图片

然而,当你选择了这样的主题,会发现实际是这样的

打造高效个性Terminal(二)之 zsh_第2张图片

因为,这些主题都依赖于一种字体powerline fonts,powerline fonts是vim增强组件vim powerline附属的字体,如果要使用依赖这种字体的主题,要在系统中安装该字体。

安装 powerline fonts

// 下载powerline fonts项目
git clone https://github.com/powerline/fonts
// 执行安装
./fonts/install.sh

配置iTerm

Preperence → Profiles → Text → Front 中,
Preperence → Profiles → Text → Non-ASCII Font
改变字体为Sauce Code Powerline

打造高效个性Terminal(二)之 zsh_第3张图片
改变字体

插件 Plugins

用vim打开~/.zshrc中,可以看到这样配置

...
# 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)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git)
...

修改plugins的值就可以修改或添加插件。

下面介绍几款我常用的插件

autojump

A cd command that learns - easily navigate directories from the command line

一款快捷跳转目标路径的插件,支持模糊匹配,自动补全,历史记录等功能。

autojump

dirhistory

This plugin allows you to navigate the history of previous current-working-directories using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT.

一款支持目录的上翻,下翻功能的插件。

dirhistory

osx

This plugin provides a few utilities to make it more enjoyable on OSX.

一款增加了一些在OSX上实用的命令插件。

Command Description
tab Open the current directory in a new tab
ofd Open the current directory in a Finder window
pfd Return the path of the frontmost Finder window
pfs Return the current Finder selection
cdf cd to the current Finder directory
pushdf pushd to the current Finder directory
quick-look Quick-Look a specified file
man-preview Open a specified man page in Preview app

git

The git plugin provides many aliases and a few useful functions.

一款提供git别名命令以及一些方法命令的插件

git-extras

一款扩展了不少方便快捷git命令的插件

More Plugins

更多的插件介绍见 zsh plugins

vi(vim) 基础

使用命令行的时候,难免会遇到要编辑文档的时刻,尽管不是vim党,但是如果掌握vim的基本操作,对效率还是有大大提升的。

vi与vim的关系

简单来说,vi是老师的文字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具,就连vim的官方网站(http://www.vim.org/)自己也说vim是一个「程序开发工具」而不是文字处理软件。

三种模式

基本上vi中共分为3种模式,分别是「一般模式」,「编辑模式」与「命令行模式」

  • 一般模式
    以vi打开一个文件,默认就是一般模式,这个模式中,可以按下i来进入编辑模式,按下ESC则退出编辑模式回到一般模式。在这个模式中可以删除字符、删除行、复制、黏贴。

  • 编辑模式
    编辑模式能真正的编辑文本。

  • 命令模式
    在一般模式中,输入:,/,?中的一个可以进入命令行模式,进行诸如数据查找操作,读取、保存、离开vi等等操作。

常用操作

掌握下面的十一个命令,就足够你在vim中生存了。

移动光标

  • hjkl : 你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。

行操作

  • dd : 删除当前行,并把删除的行存到剪贴板里
  • yy : 复制当前行。
  • p : 黏贴剪贴板

保存退出

  • :w : 保存已编辑的文集
  • :q : 退出编辑
  • :wq : 保存并退出
  • :help : 显示相关命令的帮助(退出帮助需要输入:q)

搜索

  • /word : 向下寻找一个名为word的字符串
  • ?word : 向上寻找一个名为word的字符串
  • n : 重复前一个查找的操作

文末福利,安抚你的强迫症

感谢你能耐心的看到这里,给你安利一个强迫症患者福音的窗口控制工具:Spectacle

Spectacle能通过快捷键,很轻易的排列好窗口的大小。

Spectacle

参考

http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively
https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins
http://www.vim.org/
http://macshuo.com/?p=676
http://swiftcafe.io/2015/07/25/iterm/

你可能感兴趣的:(打造高效个性Terminal(二)之 zsh)