一个高效的开发环境,无疑对我们日常工作有巨大的帮助,时间就是靠着这些微小的细节而节省出来的。

接下来,我将给大家讲解如何配置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