那些我希望在一开始使用 Zsh(oh-my-zsh) 时就知道的

原文地址:http://segmentfault.com/a/1190000002658335  作者:xavier

自带的插件

其实我用了 oh-my-zsh 快三个月后才知道原来他自带了很多插件没有开启。。。

如何开启?找到 ~/.zshrc 有一行 plugins=(git),想加什么插件就把名字放里面就是了,比如plugins=(rails git ruby) 就开启了railsgit 和 ruby 三个插件。

更多插件请进入 ~/.oh-my-zsh/plugins文件夹探索,也可以看看 wiki 里的 Plugins Overview,每个人的需求不一样,每个插件试试总能找到惊喜。里面有一些比较神奇的插件,比如敲两下esc 它会给你自动加上 sudo 的 sudo 插件,让复制显示进度条的cp插件,解压用的 extract 插件(有没有觉得在命令行下敲一大堆选项才能解压有点奇怪?我也觉得),vi 粉的vi-mode 等等...

z

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

d

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

ls

每次按 ls 再按回车?这个感觉就像是敲clear而不是ctrl+L去清屏,Don‘t Repeat Yourself,按 alt+L

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):

Alias Command
<pre>g</pre> <pre>git</pre>
<pre>gst</pre> <pre>git status</pre>
<pre>ga</pre> <pre>git add</pre>
<pre>gp</pre> <pre>git push</pre>
<pre>gc</pre> <pre>git commit -v</pre>
<pre>gc!</pre> <pre>git commit -v --amend</pre>

zsh_stats

敲 zsh_stats 可以看到你的使用频率前 20 的命令是什么!

官方的 wiki(重要!)

官方 wiki 上面给出了很多有用的功能介绍,比如一些 aliases,像.......take 等等。

如果完整的看完了 wiki 的话我前面的介绍都是废话了。

结语

    • oh-my-zsh 太慢了?请换 SSD。每次看到别人不停的做什么精简优化系统的甚至编译内核榨干系统性能的时候(以前我也是这样,直到买了个 SSD),我只会建议他买个 SSD 和 内存条。人生苦短,能花钱的时候就不要花时间。
    • 推荐一个不相关的:trash-cli,就是命令行版的回收站,它的神奇之处在于不是简单的把文件移动到回收站,而且可以在回收站里恢复。所以它说自己是Command line interface to the freedesktop.org trashcan,我的 zshrc 里有一行:alias rm="trash-put"
    • 其他的一些非常有用的 tips 想到再补充。
    • 补上我的配置文件们:https://github.com/dd1994/dotfiles| fc0d85896881858ef77858d115b56c2085 |
    • 补上一个我最近录的视频:http://www.tudou.com/programs/view/dmfKA8BWyCA/|fc0d85896881858ef77858d115b56c2087 |
时间: 2024-10-23 18:13:00

那些我希望在一开始使用 Zsh(oh-my-zsh) 时就知道的的相关文章

Iterm2安装Zsh + Oh My Zsh+Solarized

安装Oh My Zsh curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 安装Zsh: 1.安装zsh brew install zsh 2.配置iterm2 sudo vim /etc/shells 输入: /usr/local/bin/zsh chsh -s /usr/local/bin/zsh 3.然后重新启动iTerm2,zsh就已经被配置成默认的shell了. 安装Sol

我希望自己尽早知道的 7 个 JavaScript 怪癖(转载oschina)

如果对你来说JavaScript还是一门全新的语言,或者你是在最近的开发中才刚刚对它有所了解,那么你可能会有些许挫败 感.任何编程语言都有它自己的怪癖(quirks)--然而,当你从那些强类型的服务器端语言转向JavaScript的时候 ,你会感到非常困惑.我就是这样!当我在几年前做全职JavaScript开发的时候,我多么希望关于这门语言的许多事情我能尽早地知道.我希望通过本文中分享的一些怪癖能让你免于遭受我所经历过的那些头疼的日子.本文并非一个详尽的列表,只是一些取样,目的是抛砖引玉,并且让

ubuntu下安装zsh + oh my zsh

1.需要zsh支持,所以安装zsh: sudo apt-get install zsh 2.安装oh my zsh 根据官方: $ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 3.设置zsh为默认终端 chsh -s $(which zsh) 或者 chsh -s /bin/zsh 4.注销用户,重新登录 未完成此步骤,则zsh不是默认终端.不是很

Mac OS 终端美化:iterm2 + zsh + oh~my~zsh 设置教程

前言 mac自带的terminal终端没有文件名高亮等功能,而且界面不是很好看,故今晚学舍友折腾了终端,可以让自己使用起来更加方便,看起来更加舒服. 下面直接说配置方法吧.关于这三个名词的介绍可以看文末. 配置方法 1. 下载安装iterm2 官网:https://www.iterm2.com 打开官网下载安装包,打开安装就好. 2. 切换shell为zsh chsh -s /bin/zsh 查看是否切换成功 echo $SHELL 3. 安装oh~my~zsh sh -c "$(curl -f

我希望初学Python时就能知道的一些用法

有时候我反问我自己,怎么不知道在Python 3中用更简单的方式做"这样"的事,当我寻求答案时,随着时间的推移,我当然发现更简洁.有效并且bug更少的代码.总的来说(不仅仅是这篇文章),"那些"事情总共数量是超过我想象的,但这里是第一批不明显的特性,后来我寻求到了更有效的/简单的/可维护的代码. 字典 字典中的keys()和items() 你能在字典的keys和items中做很多有意思的操作,它们类似于集合(set): 1 2 3 4 5 6 7 8 aa={'mi

如果回到十八岁,我要对自己说......

I like to joke that I am who I am today because I did everything wrong in my 20's. I've always been fearless, and it often got me in trouble. I wasn't afraid to start a business, borrow a bunch of money, or quit a well-paying job to travel the world.

给独立开发者的经验分享——编程语言

二.编程语言 对于一个程序员来说,一般需要掌握2,3门语言是基本的,并且学习一门新的编程语言也是基本功级别的能力,所以这部分主要谈谈快速学习一门新的编程语言的方法.我学过的语言有这些(这里编译器和语言的概念等同了并且不按先后次序):Foxbase,C,C++,汇编,Visual C++,Delphi,FoxPro,VB,C#.就我个人的体会来说,这些语言可以分为三种类别:非面向对象的,面向对象以及支持可视化设计的. 这三种类别的语言有一些共同的内容,而这些内容也是我们在学习一门新的编程语言时首先

C++11(15): 模板与泛型编程

面向对象编程和泛型编程都能处理在编写程序时不知道类型的情况.不同之处:OOP能处理类型在程序运行之前都未知的情况:而泛型编程中,在编译时就能获知类型了 模板参数类别不能为空. 模板参数表示在类或函数定义中用到的类型或值. template <typename T> int compare(const T &v1 , const T &v2) { if(v1<v2) return -1; if(v2<v1) return 1; return 0 ; } cout<

2018.6.13 Java语言基础复习总结

Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计算机执行. 1.2汇编语言 负责把汇编语言翻译成二进制的机器语言,这种翻译程序就是汇编程序. 1.3高级语言 1954年第一个完全脱离机器硬件的高级语言FORTRAN诞生 1.3.1C语言 是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点. 1.3.2 C++语言 是具有面向对象