欢迎来我的博客阅读: 「打造高效个性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的主题列表的话,你会发现不少主题会有这样的样式,
然而,当你选择了这样的主题,会发现实际是这样的
因为,这些主题都依赖于一种字体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
插件 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
一款快捷跳转目标路径的插件,支持模糊匹配,自动补全,历史记录等功能。
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.
一款支持目录的上翻,下翻功能的插件。
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能通过快捷键,很轻易的排列好窗口的大小。
参考
http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressivelyhttps://github.com/robbyrussell/oh-my-zsh/wiki/Pluginshttp://www.vim.org/http://macshuo.com/?p=676http://swiftcafe.io/2015/07/25/iterm/