上一次推文写了JupyterLab:程序员的笔记本神器,介绍的是如何在web端打造一个便捷的开发环境,发出后反响还不错

因此我决定再写几篇能提升程序员工作以及学习效率的文章,如果能形成一个系列那是最好~如果你有自己的效率工具以及方案,欢迎留言讨论

什么是oh-my-zsh

诸位大佬都知道, Linux下 shell默认是 bash,但还有一种 shell,叫做 zsh它比 bash更加强大,功能也更加完善, zsh虽说功能强大,但是配置比较复杂导致流行度不是很高

但是好东西终究是好东西,开源界的大佬们是不会让明珠蒙尘,我等伸手党也是可以直接搭顺风车的,感谢 robbyrussell大佬的开源项目 oh-my-zsh 吧,从此使用 zsh也就几行命令的事情

oh-my-zsh项目目前有 80k+star,贡献者超过 1300,并且提供了200多个可选插件(rails,git,OSX,hub,capistrano,brew,ant,php,python等),以及超过140个主题供你选择,安装后你将享受以下特性:

  • 首先兼容bash

  • 自动cd:只需输入目录的名称即可

  • 命令选项补齐,比如输入 git,然后按 Tab,即可显示出 git都有哪些命令

  • 目录一次性补全:比如输入 Doc/doc按 Tab键会自动变成 Documents/document/

  • 插件和主题支持(插件能进一步提升效率)

安装oh-my-zsh

在安装oh-my-zsh之前,首先需要安装好 zsh

  1. yum install -y zsh

切换shell为zsh:

  1. chsh -s /bin/zsh

重启终端:

  1. # 查看当前shell

  2. echo $SHELL

输出 /bin/zsh表示成功

oh-my-zsh的安装非常简单,参考官网,执行如下命令即可:

  1. # curl

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

  3. # wegt

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

输出如下表示成功:

配置oh-my-zsh

和 bash不同, zsh的配置文件是 ~/.zshrc,实际上 oh-my-zsh的默认配置也够我们使用了,但是这样其真正的强大之处并不能得到很好的体现,因此我们可以继续看看对应的插件和主题功能

关于主题

oh-my-zsh的主题非常丰富,可以用如下命令查看已有主题:

  1. ls .oh-my-zsh/themes

个人比较喜欢简单的,因此用了 wedisagree主题,进入 .zshrc配置文件进行修改

  1. vim ~/.zshrc

将第11行改为 ZSH_THEME="wedisagree",然后 :wq保存退出,主题就自动生效

关于插件

oh-my-zsh的插件生态非常丰富,下面列出来的是我个人比较常用的插件,如果你有兴趣,可以取发掘能提高自身效率的插件~

注意:如果操作过程中出现 _arguments:448:_vim_files:functiondefinition filenotfound错误,请执行: rm-f~/.zcompdump即可

incr

incr是一款自动提示插件,功能非常强大,官网演示demo,感受一下:

安装:

  1. wget http://mimosa-pudica.net/src/incr-0.2.zsh

  2. mkdir ~/.oh-my-zsh/plugins/incr

  3. mv incr-0.2.zsh ~/.oh-my-zsh/plugins/incr

  4. echo 'source ~/.oh-my-zsh/plugins/incr/incr*.zsh' >> ~/.zshrc

  5. source ~/.zshrc

可以开心的敲命令行了~

autojump

这款插件基本上算是必备插件了,在终端操作里面比较常用的算是文件夹之间的切换,这款插件极大地简化了路径跳转的操作,在一键直达的功能下,自动补全也就一般般了哈

先安装:

  1. yum install autojump-zsh

  2. chmod 777 /usr/share/autojump/autojump.bash

  3. echo "/usr/share/autojump/autojump.bash" >> ~/.zshrc

  4. source ~/.zshrc

效果如下:

以前的 cd code现在可以直接 j c,路径越长,该插件效果就越明显

zsh-autosuggestions

这是一个命令自动补全插件,当你输入命令的几个字母,它会自动根据历史输入进行自动补全,然后按 ,安装也很简单:

  1. git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

  2. vim ~/.zshrc

  3. # 加入插件列表

  4. plugins=(

  5. git

  6. zsh-autosuggestions

  7. )

  8. source ~/.zshrc

该插件已经在第一个动图有演示,这里不再重复

autoswitch_virtualenv

这个插件对于Python开发者来说可以算是神器了,在实际开发过程中,基本上一个Python项目就对应了一个新的虚拟环境,如果你使用 pipenv,当你需要进入项目的虚拟环境时候,就需要执行 pipenv shell命令,安装 autoswitch_virtualenv后,该插件可以自动地完成这些事情:

  1. git clone "https://github.com/MichaelAquilina/zsh-autoswitch-virtualenv.git" "$ZSH_CUSTOM/plugins/autoswitch_virtualenv"

  2. vim ~/.zshrc

  3. # 加入插件列表

  4. plugins=(

  5. git

  6. zsh-autosuggestions

  7. autoswitch_virtualenv

  8. )

  9. source ~/.zshrc

该插件已经在第一个动图里面体现的很明显,这里不再重复演示

zsh-syntax-highlighting

这个插件的主要作用就是在提高颜值(高亮你的zsh可用命令),安装如下:

  1. git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

  2. vim ~/.zshrc

  3. # 加入插件列表

  4. plugins=(

  5. git

  6. zsh-autosuggestions

  7. zsh-syntax-highlighting

  8. )

  9. source ~/.zshrc

效果如下图:

总结

程序员在开发过程中,效率快慢是个不可忽略的因素,提高效率,能一定程度上节省开发时间,从而形成一系列的正向反馈,何乐而不为?

oh-my-zsh: 让终端飞的更多相关文章

  1. Ubuntu基于zsh自定义设置shell主题

    为优化Ubuntu命令行页面效果,Google一番选择github上开源项目zsh,以自定义Shell主题,注:本机系统为Ubuntu 14.04 1.安装zsh sudo apt-get insta ...

  2. GitHub 终端加速最佳实践

    终端加速 GitHub 方法的前置条件, 一是购买了加速服务或者租用 VPS 搭建加速服务, 二是系统是 macOS, 三是终端是 iTerm, 四是 Shell 是 zsh. 终端加速 GitHub ...

  3. Linux美化终端

    终端美化 不管你是Kali 还是 Centos  还是Ubuntu... 请先用你的安装器安装 zsh 这里以Ubuntu 为例: 终端美化使用的on-my-zsh 首先先介绍一下什么是zsh,zsh ...

  4. mac添加oh my zsh

    Mac 终端 oh-my-zsh 配置   Mac 终端默认 shell 为 bash.zsh 可能是目前最好的 shell ,至于好在哪里可自行百度.本文主要介绍使用 zsh 以及 oh-my-zs ...

  5. iTerm2 + oh my zsh +agnoster

    安装iTerm2 iTerm2官方下载地址 http://www.iterm2.com/downloads.html 安装Oh My Bash 1.通过cat /etc/shells命令可以查看当前系 ...

  6. Mac 终端实现快速定位命令 自动补全目录

    基于macOS oh-my-zsh 切换终端主题 incr.zsh 实现快速定位命令 自动补全目录 效果预览 步骤 1.安装 oh-my-zsh sh -c "$(curl -fsSL ht ...

  7. WindTerm:新一代开源免费的终端工具,GitHub星标6.6k+,太酷了!

    继 Tabby.Warp 后,今天再来给大家推荐一款终端神器--WindTerm,完全开源,在 GitHub 上已经收获 6.6k 的 star. https://github.com/kingToo ...

  8. [转载] 高效 MacBook 工作环境配置

    原文: http://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=208231200&idx=1&sn=8a76ddc56c1f ...

  9. [转载] 高效MacBook工作环境配置

    原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手M ...

随机推荐

  1. [SDOI2017]遗忘的集合

    [SDOI2017]遗忘的集合 综合了很多套路的题 一看就是完全背包 生成函数! 转化为连乘积形式 Pi....=F 求Ln! 降次才可以解方程 发现方程是: f[i]=∑t|i : bool(t)* ...

  2. CF1129B 【Wrong Answer】

    既然 $ n \leq 2000$ 那我们就假使所有的 $n = 2000 $ 主要是为了方便.再使 \(x = \sum_{i=1} ^ {1999}\) 以及 $a_1=a_2=a_3=...=a ...

  3. 【洛谷P4555】最长双回文串

    题目大意:给定一个长度为 N 的字符串 S,求 S 的最长双回文子串的长度,双回文子串定义为是 S 的一个子串,可以分成两个互不相交的回文子串. 题解:利用回文自动机 len 数组的性质,即:len ...

  4. MySQL 水平拆分与垂直拆分详解

    前言:说到优化mysql,总会有这么个回答:水平拆分,垂直拆分,那么我们就来说说什么是水平拆分,垂直拆分. 一.垂直拆分 说明:一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将 ...

  5. 浅谈JS中逗号运算符的用法

    阅读本文的前提是,你能区分什么是表达式,什么是语句.还有明确运算符和运算数都是些啥东西.所谓的表达式就是一个JavaScript的"短语",JavaScript的解释器可以计算它, ...

  6. java的数组

    作用:存储相同类型的一组数组,相当于一个容器,存放数据的.对同种数据类型集中存储.管理.便于遍历 数组类型:就是数组中存储的数据的类型 特点:数组中的所有元素必须属于相同的数据类型,数组中所有元素在内 ...

  7. ansible-playbook用法

    一.playbook用法 1.playbook的执行文件为YAML语言编写,所以文件名为xxx.yml.YAML语法可以参考https://docs.ansible.com/ansible/lates ...

  8. C语言 内存管理(转)

     转自 https://blog.csdn.net/u011616739/article/details/61621815 C语言 内存管理 1.内存分区 C源代码进过预处理.编译.汇编和链接4步生成 ...

  9. 谈谈JAVA中的安全发布

    谈谈JAVA中的安全发布 昨天看到一篇文章阐述技术类资料的"等级",看完之后很有共鸣.再加上最近在工作中越发觉得线程安全性的重要性和难以捉摸,又掏出了<Java并发编程实战& ...

  10. ultraEdit软件比较两个文件内容的不同处

    1.软件名称为:UltraEdit ,安装并打开软件; 软件图标: 打开软件如图所示: 2.点击导航图标,蓝色上面有Uc图标,该图标名称为“比较文件” 如图位置: 3.弹出框,根据文件路径选择好比较的 ...