开启终极效率shell之旅(1)
一个高效的开发环境,无疑对我们日常工作有巨大的帮助,时间就是靠着这些微小的细节而节省出来的。
接下来,我将给大家讲解如何配置zsh+incr,打造终极高效的开发环境。
首先,先看一下效果:
想要你的shell有这样的效果,首先满足下面的条件:
安装oh-my-zsh
下载incr
把插件执行shell 写到.zshrc 配置文件中
废话不多说,我直接上详细步骤:
1、安装zsh
Mac : 直接看下一节
Redhat/centos :sudo yum install zsh
Ubuntu :sudo apt-get install zsh
安装完成后执行:
chsh -s /bin/zsh
2、安装oh my zsh
自动安装:
wgethttps://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh-O-|sh
手动安装:
gitclonegit://github.com/robbyrussell/oh-my-zsh.git~/.oh-my-zshcp~/.oh-my-zsh/templates/zshrc.zsh-template~/.zshrc
3、下载incr
下载地址:http://mimosa-pudica.net/zsh-incremental.html
为了防止该网址将来不能访问,因此我把代码摘录如下:
#Incrementalcompletionforzsh#byy.fujii<y-fujiiatmimosa-pudica.net>,publicdomainautoload-Ucompinitzle-Nself-insertself-insert-incrzle-Nvi-cmd-mode-incrzle-Nvi-backward-delete-char-incrzle-Nbackward-delete-char-incrzle-Nexpand-or-complete-prefix-incrcompinitbindkey-Mviins'^['vi-cmd-mode-incrbindkey-Mviins'^h'vi-backward-delete-char-incrbindkey-Mviins'^?'vi-backward-delete-char-incrbindkey-Mviins'^i'expand-or-complete-prefix-incrbindkey-Memacs'^h'backward-delete-char-incrbindkey-Memacs'^?'backward-delete-char-incrbindkey-Memacs'^i'expand-or-complete-prefix-incrunsetoptautomenucompdef-dscpcompdef-dtarcompdef-dmakecompdef-djavacompdef-dsvncompdef-dcvs#TODO:#cpdir/now_predict=0functionlimit-completion{if((compstate[nmatches]<=1));thenzle-M""elif((compstate[list_lines]>6));thencompstate[list]=""zle-M"toomanymatches."fi}functioncorrect-prediction{if((now_predict==1));thenif[["$BUFFER"!="$buffer_prd"]]||((CURSOR!=cursor_org));thennow_predict=0fifi}functionremove-prediction{if((now_predict==1));thenBUFFER="$buffer_org"now_predict=0fi}functionshow-prediction{#assert(now_predict==0)if((PENDING==0))&&((CURSOR>1))&&[["$PREBUFFER"==""]]&&[["$BUFFER[CURSOR]"!=""]]thencursor_org="$CURSOR"buffer_org="$BUFFER"comppostfuncs=(limit-completion)zlecomplete-wordcursor_prd="$CURSOR"buffer_prd="$BUFFER"if[["$buffer_org[1,cursor_org]"=="$buffer_prd[1,cursor_org]"]];thenCURSOR="$cursor_org"if[["$buffer_org"!="$buffer_prd"]]||((cursor_org!=cursor_prd));thennow_predict=1fielseBUFFER="$buffer_org"CURSOR="$cursor_org"fiecho-n"\e[32m"elsezle-M""fi}functionpreexec{echo-n"\e[39m"}functionvi-cmd-mode-incr{correct-predictionremove-predictionzlevi-cmd-mode}functionself-insert-incr{correct-predictionremove-predictionifzle.self-insert;thenshow-predictionfi}functionvi-backward-delete-char-incr{correct-predictionremove-predictionifzlevi-backward-delete-char;thenshow-predictionfi}functionbackward-delete-char-incr{correct-predictionremove-predictionifzlebackward-delete-char;thenshow-predictionfi}functionexpand-or-complete-prefix-incr{correct-predictionif((now_predict==1));thenCURSOR="$cursor_prd"now_predict=0comppostfuncs=(limit-completion)zlelist-choiceselseremove-predictionzleexpand-or-complete-prefixfi}
4、执行如下命令:
cd~/.oh-my-zsh/plugins/mkdir-pincrcdincrtouchincr-0.2.zsh(将上面链接中的代码复制粘贴到incr-0.2.zsh文件中)chmod777incr-0.2.zsh
5、配置 .zshrc 文件:
vim ~/.zshrc
末尾加入
source~/.oh-my-zsh/plugins/incr/incr*.zsh
6、 source ~/.zshrc #使其立即生效
7、到此配置完毕,关闭当前shell终端窗口,再重新打开,即可看到效果。是不是觉得以前使用的bash弱爆了呢!
另附上 on my zsh 的主题链接,喜欢折腾的兄弟拿去慢慢修改吧:
https://github.com/robbyrussell/oh-my-zsh/wiki/themes
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。