分享 om my zsh 命令高亮

qinfanpeng · 2013年03月08日 · 最后由 qinfanpeng 回复于 2013年03月08日 · 5578 次阅读

oh my zsh 虽好,但是若加上 命令高亮就更 perfect 了。下面是我从 fish 中弄的命令高亮配置文件,把它追加到 .zshrc 文件后面就可以了,希望有人喜欢!

============================ 命令高亮===========

#漂亮又实用的命令高亮界面 setopt extended_glob TOKENS_FOLLOWED_BY_COMMANDS=('|' '||' ';' '&' '&&' 'sudo' 'do' 'time' 'strace')

recolor-cmd() { region_highlight=() colorize=true start_pos=0 for arg in ${(z)BUFFER}; do ((start_pos+=${#BUFFER[$start_pos+1,-1]}-${#${BUFFER[$start_pos+1,-1]## #}})) ((end_pos=$start_pos+${#arg})) if $colorize; then colorize=false res=$(LC_ALL=C builtin type $arg 2>/dev/null) case $res in 'reserved word') style="fg=magenta,bold";; 'alias for') style="fg=cyan,bold";; 'shell builtin') style="fg=yellow,bold";; 'shell function') style='fg=green,bold';; "$arg is") [[ $arg = 'sudo' ]] && style="fg=red,bold" || style="fg=blue,bold";; *) style='none,bold';; esac region_highlight+=("$start_pos $end_pos $style") fi [[ ${${TOKENS_FOLLOWED_BY_COMMANDS[(r)${arg//|/|}]}:+yes} = 'yes' ]] && colorize=true start_pos=$end_pos done } check-cmd-self-insert() { zle .self-insert && recolor-cmd } check-cmd-backward-delete-char() { zle .backward-delete-char && recolor-cmd }

zle -N self-insert check-cmd-self-insert zle -N backward-delete-char check-cmd-backward-delete-char

可以加个 Demo 吗?

无图无真相

StartFragment 无图无真相 EndFragment

这个不好截图得,命令输入正确后就会变色高亮,一试便知

需要 登录 后方可回复, 如果你还没有账号请 注册新账号