图片 4

zsh在感觉和功能上都和bash相似,倒也不是说 Bash

给 Zsh 的 Vi 情势加上提醒符

用久了 zsh 的 Vi 命令行编辑格局 , 有的时候候会盲目自个儿终究在哪个格局 。
大家都知道 ,Vim 的情事行能够展现格局的指令 ,
以此来注脚是平常方式只怕插入方式 。 假使大家能把 Vim 的那么些特点移植到
zsh 身上 , 那就周详了 。

用 man zshzle 看了看文书档案 , 开掘实现起来并简单 , 只需在 .zshrc
中加多如下内容就能够 :

VIMODE=’– INSERT –‘
function zle-line-init zle-keymap-select {
    VIMODE=”${${KEYMAP/vicmd/– NORMAL –}/(main|viins)/– INSERT –}”
    zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select

RPROMPT=’%{$fg[green]%}${VIMODE}%{$reset_color%}’

多少解释一下 , 首先大家设置 VIMODE 变量保存暗许状态 ( 插入 ),
接着利用 zle 提供的八个 widgets 来对变量内容开展调换 , 同样尊敬绘提醒符 。
然后实施 zle widgets, 并设置 RPROMPT 使提醒符突显在侧面 。 效果如下图

图片 1

Zsh安装配置指南

使用 Zsh 的七个理由

Zsh使用体验三则

Linux下安装终极Shell Zsh

本文长久更新链接地址:

Zsh 的 Vi 情势加上提醒符 用久了 zsh 的 Vi
命令行编辑情势 , 临时候会不明本身究竟在哪个形式 。 大家都掌握 ,Vim
的图景行能够来得模…

Zsh 包容 Bash,据旧事 99% 的 Bash 操作 和 Zsh 是一致的

行使默许指令列情势(bash
shell)的管理员大概想稳重看看zshell或是zsh。由于它于bash相似,功用又独具增强,zsh在Linux社区获得了关注。
那么zsh有如何分化之处呢?首先,zsh在感觉到和效能上都和bash相似。可是有的增高效率让zsh造成五个风趣的选项。
****Zsh巩固功效:标签完结和拼写错误纠正****

制作家组织和的 Python 编码蒙受

Zsh 官网:

用过bash标签达成的管理员会开采zsh中的扩充效果令人纪念深切。这么些成效饱含菜单中幸存的活动实现命令选项,该菜单能够经过行使箭头键滚动。比释迦牟尼讲,键入以下命令将提供恐怕命令行标识的列表:
$ ls -或是
$ rm -采纳要注销的一定程序,程系列表就和收回命令一道可用了。
另多少个职能在寄放页面程序中,它提供到less命令的急迅情势。要访问它,输入:
$ 那和在指令行上运营more文件名同样。
对傻里傻气的打字员来讲,拼写错误更正作用可用了。举个例子,如若你输入了一条错误命令,zsh会提示更正:
$ llszsh: 要将 ‘lls’修改为 ‘ls’ [nyae]吗?
要修改它,输入y,命令就修正为ls,接着命令就绸缪运维了。
其余选项也很实用。输入n拒绝命令考订,输入a中断命令,输入e跳转到命令行举行编制。这些活动更正作用也能用于命令行标志和文件名,包涵修改无效Git分支名称一类的地下事务。
始发利用zsh

前言

图片 2

重新配置了一下友好的Mac的编制程序境况,毕竟新岁新气象嘛,首尽管iTerm2、Zsh、Vim优化、Consolas字体、NoisyTyper,那几个的有关安排。工欲利其事必先利其器,好的编码意况得以荣升大家的打码的幸福感。好的编码蒙受包括美观(视觉),声音(听觉),流畅度(触觉),职业条件(嗅觉,味觉)等三个地点。前边有几张配置后的图形感受一下,主要看字体和配色(有些人唯恐认为非常难看,个人爱好黑紫,配色和字体有无数抉择,各具备好,求别喷
XD)。

 

图片 3

此地输入图片的陈说

图片 4

此处输入图片的陈说

 

先看下你的 CentOS 帮衬什么 shell:cat
/etc/shells,不奇怪结果应该是如此的:

为了神速地开头使用zsh,可利用RobbyRussell搜聚的zsh核心、成效和工具,它们被优先打包成“Oh My Zsh”。
$ wget –no-check-certificate
https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
-O – | sh
还能手工业安装这一个工具包。如若您在运转另一种 shell,只是想尝试 Z
shell,那么手工业安装可能会更加好。请使用 Git 复制这么些工具包,然后运维zsh:
$ git clone
git://github.com/robbyrussell/oh-my-zsh.git
~/.oh-my-zsh
$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshr
c$ zsh
OMZ! 的私下认可核心称为 “robbyrussell”,由 OMZ!
的长官命名。您能够将它更改为 ~/.oh-my-zsh/themes
中列出的别的大旨。改造核心的主意是,张开 ~/.zshrc 文件,将 ZSH_THEME
变量设置为主题文件的骨干名称。举例,要想行使 cloud.zsh-theme,则应该设置
ZSH_THEME=cloud。您或然会小心到,多数大旨的出口状态新闻体未来提示符四之日提拔符的最侧边
比如,Clean
宗目的在于最侧边输出当前时间。与硬件荧屏不一致,荧屏模拟器的平底平常未有动静条,可是可以使用提醒符左侧的区域提供动态反馈。还记得可以在晋升符中使用
\e[ 编码设置颜色吗?有一组那样的 “转义”
能够将光标移动到窗口中的差别位置。其余,近来的 UNIX
系统并未利用地下的符号和数字,而是选取 tput
按名称或用途查找和发生转义。Z shell 使用这种艺术提供 RPS1 和
RPS2,它们各自表示早先行和持续行左边的提醒符。
除去通过主题调节颜色和提醒符之外,OMZ!
还提供了有的插件,那些插件将同类的函数和特色聚焦在一齐。例如,借令你使用
Git 实行源代码调整,能够启用 Git OMZ! 插件,它会在升迁符中扩展 Git
状态。请张开 ~/.zshrc 文件,然后编辑插件行,在里边蕴蓄git>。以往,当切换来三个 Git
存款和储蓄库时,提醒符会反映本场馆。(极限shell改造)“Oh
My
Zsh”知识库满含二个主旨和成效汇聚用于现存zsh蒙受的创设和改换。它也能和卸载脚本一齐用来简化移除:
$ uninstall_oh_my_zsh
与zsh
shell一齐供给的还可能有一部分很好的文书档案和zsh参照他事他说加以考察卡。GitHub等网站上的在线能源是.zshrc文件的例证,它一定于zsh版的.bashrc文件,这个能源同一时候也提供哪些定制zsh的言传身教或是示范抓牢命令行经验的炫人眼目技巧。
一对zsh效率可和bash一同用,但在bash上设置、配置更是复杂,那也解释了为啥人们有多页.bashrc文件。假如是Shell的惊人使用者,zsh会是吸引你用来代表bash的挑选。它的运用高效且轻松,而它的一对要害职能也让与shell的竞相更加有趣。
老大好用的特点
提升的 alias,在bash里若是你用
alias,新名不用有补全作用了,所以alias功用有限,四回想用它简化软件包管理都丢掉了。而zsh里的alias生成的新名同样支撑选项补全,就样就能够很放心地
alias ai=”sudo apt-get install” 等了,再也不用频仍输入长指令了。
zsh能够低价里选用飞快键,比如可以兑现按两下[esc],在指令此前加加sudo,按[esc][h],突显man,等等。
zsh能够对单个命令的补全实行设置,使常用命令高效。比方 kill [tab]
就足以选择具有进度。 zsh的命令提醒符设置更加灵活。
zsh对目录的操作非常灵巧。 zsh对重定向,管道等提供越来越多职能。
配置
#color{{{
autoload colors zsh/terminfo
if [[ “$terminfo[colors]” -ge 8 ]]; then
colors
fi
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval _$color=’%{$terminfo[bold]$fg[${(L)color}]%}’
eval $color=’%{$fg[${(L)color}]%}’
(( count = $count + 1 ))
done
FINISH=”%{$terminfo[sgr0]%}”
#}}}

预备阶段:器

iTerm2:是os系统中的叁个代表终端。重要优点:荧屏分割(能够水平划分和垂直细分),选中即复制,快捷找出(command+f),配色字体自定义化,自定义快捷键等。

Consolas:微软下最为难的字体之一,个人以为很符合程序猿,除开字体赏心悦目外,首要缘由是它的数字“0”字参与了一斜撇,以利于与字母“o”分辨。那也是自个儿和它结合的第一原因,当年在某次acm比赛前,就是因为眼睛不可能辨识是0依然o,缺憾现今。

Zsh:zsh和bash同样是Shell的一种。比较bash:更敏捷、更加好的活动补全、越来越好的文书名展开(通配符张开)、更加好的数组管理、可定制性高。mac下自带了zsh,不要求再设置。

Vim:是三个好像于Vi的知名的成效庞大、中度可定制的文书编辑器,在Vi的基本功上更进一竿和扩充了非常多风味。和Emacs并列成为类Unix系统顾客最欣赏的编辑器。推断大家都很熟谙,不做累述。

NoisyTyper:一款升高你打字逼格的软件,能够让您打字的时候产生打字机的动静,咔咔咔那样。

地点几个安装都比较轻巧,教程也非常多。这里关键讲一下mac下consolas字体的设置。

  1. $ brew install cabextract
  2. $ cd~/Downloads
  3. $ mkdir consolas
  4. $ cd consolas
  5. $ curl -O http://download.microsoft.com/download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26/PowerPointViewer.exe
  6. $ cabextract PowerPointViewer.exe
  7. $ cabextract ppviewer.cab
  8. $ open CONSOLA*.TTF

末尾按下弹出窗口的安装键就ok了。

 

/bin/sh

#命令提示符 {{{
precmd () {
local count_db_wth_char=${#${${(%):-%/}//[[:ascii:]]/}}
local leftsize=${#${(%):-%M%/}}+$count_db_wth_char
local rightsize=${#${(%):-%D %T }}
HBAR=" -"

FILLBAR="\${(l.(($COLUMNS - ($leftsize + $rightsize +2)))..${HBAR}.)}"

RPROMPT=$(echo "%(?..$RED%?$FINISH)")
PROMPT=$(echo "$BLUE%M$GREEN%/ $WHITE${(e)FILLBAR}   $MAGENTA%D %T$FINISH
$CYAN%n $_YELLOW>>>$FINISH ")

#在 Emacs终端 中使用 Zsh 的一些设置
if [[ "$TERM" == "dumb" ]]; then
setopt No_zle
PROMPT='%n@%M %/
>>'
alias ls='ls -F'
fi
}
#}}}

#标题栏、任务栏样式{{{
case $TERM in (*xterm*|*rxvt*|(dt|k|E)term)
preexec () { print -Pn "\e]0;%n@%M//%/\ $1\a" }
;;
esac
#}}}

#关于历史纪录的配置 {{{
#历史纪录条目数量
export HISTSIZE=1000
#注销后保存的历史纪录条目数量
export SAVEHIST=1000
#历史纪录文件
export HISTFILE=~/.zhistory
#以附加的方式写入历史纪录
setopt INC_APPEND_HISTORY
#如果连续输入的命令相同,历史纪录中只保留一个
setopt HIST_IGNORE_DUPS
#为历史纪录中的命令添加时间戳
setopt EXTENDED_HISTORY

#启用 cd 命令的历史纪录,cd -[TAB]进入历史路径
setopt AUTO_PUSHD
#相同的历史路径只保留一个
setopt PUSHD_IGNORE_DUPS

#在命令前添加空格,不将此命令添加到纪录文件中
#setopt HIST_IGNORE_SPACE
#}}}


#杂项 {{{
#允许在交互模式中使用注释 例如:
#cmd #这是注释
setopt INTERACTIVE_COMMENTS

#启用自动 cd,输入目录名回车进入目录
#稍微有点混乱,不如 cd 补全实用
#setopt AUTO_CD

#扩展路径
#/v/c/p/p => /var/cache/pacman/pkg
setopt complete_in_word

#禁用 core dumps
limit coredumpsize 0

#Emacs风格 键绑定
bindkey -e
#设置 [DEL]键 为向后删除
bindkey "\e[3~" delete-char

#以下字符视为单词的一部分
WORDCHARS='*?_-[]~=&;!#$%^(){}<>'
#}}}

#自动补全功能 {{{
setopt AUTO_LIST
setopt AUTO_MENU
#开启此选项,补全时会直接选中菜单项
#setopt MENU_COMPLETE

autoload -U compinit
compinit

#自动补全缓存
#zstyle ':completion::complete:*' use-cache on
#zstyle ':completion::complete:*' cache-path .zcache
#zstyle ':completion:*:cd:*' ignore-parents parent pwd

#自动补全选项
zstyle ':completion:*' verbose yes
zstyle ':completion:*' menu select
zstyle ':completion:*:*:default' force-list always
zstyle ':completion:*' select-prompt '%SSelect: lines: %L matches: %M   [%p]'

zstyle ':completion:*:match:*' original only
zstyle ':completion::prefix-1:*' completer _complete
zstyle ':completion:predict:*' completer _complete
zstyle ':completion:incremental:*' completer _complete _correct
zstyle ':completion:*' completer _complete _prefix _correct _prefix   _match _approximate

#路径补全
zstyle ':completion:*' expand 'yes'
zstyle ':completion:*' squeeze-slashes 'yes'
zstyle ':completion::complete:*' '\\'

#彩色补全菜单
eval $(dircolors -b)
export ZLSCOLORS="${LS_COLORS}"
zmodload zsh/complist
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-  9]#)*=0=01;31'

#修正大小写
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'
#错误校正
zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric

#kill 命令补全
compdef pkill=killall
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:*:*:*:processes' force-list always
zstyle ':completion:*:processes' command 'ps -au$USER'

#补全类型提示分组
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*' group-name ''
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:options' auto-description '%d'
zstyle ':completion:*:descriptions' format $'\e[01;33m -- %d --\e[0m'
zstyle ':completion:*:messages' format $'\e[01;35m -- %d --\e[0m'
zstyle ':completion:*:warnings' format $'\e[01;31m -- No Matches Found --\e[0m'
zstyle ':completion:*:corrections' format $'\e[01;32m -- %d (errors: %e) --\e[0m'

# cd ~ 补全顺序
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path- directories' 'users' 'expand'
#}}}

##行编辑高亮模式 {{{
# Ctrl+@ 设置标记,标记和光标点之间为 region
zle_highlight=(region:bg=magenta #选中区域
special:bold #特殊字符
isearch:underline)#搜索时使用的关键字
#}}}

##空行(光标在行首)补全 "cd " {{{
user-complete(){
case $BUFFER in
"" ) # 空行填入 "cd "
BUFFER="cd "
zle end-of-line
zle expand-or-complete
;;
"cd " ) # TAB + 空格 替换为 "cd ~"
BUFFER="cd ~"
zle end-of-line
zle expand-or-complete
;;
" " )
BUFFER="!?"
zle end-of-line
;;
"cd --" ) # "cd --" 替换为 "cd +"
BUFFER="cd +"
zle end-of-line
zle expand-or-complete
;;
"cd +-" ) # "cd +-" 替换为 "cd -"
BUFFER="cd -"
zle end-of-line
zle expand-or-complete
;;
* )
zle expand-or-complete
;;
esac
}
zle -N user-complete
bindkey "\t" user-complete

#显示 path-directories ,避免候选项唯一时直接选中
cdpath="/home"
#}}}

##在命令前插入 sudo {{{
#定义功能
sudo-command-line() {
[[ -z $BUFFER ]] && zle up-history
[[ $BUFFER != sudo\ * ]] && BUFFER="sudo $BUFFER"
zle end-of-line #光标移动到行末
}
zle -N sudo-command-line
#定义快捷键为: [Esc] [Esc]
bindkey "\e\e" sudo-command-line
#}}}

#命令别名 {{{

alias -g ls='ls -F --color=auto'
alias -g ll='ls -l'
alias -g la='ls -a'
alias -g l='ls'
alias -g grep='grep --color=auto'
#alias -g history='history -fi'
alias -g ai='sudo apt-get install'
alias -g aar='sudo apt-get autoremove'
alias -g ap='sudo apt-get purge'
alias -g aud='sudo apt-get update'
alias -g aug='sudo apt-get upgrade'
alias -g adu='sudo apt-get dist-upgrade'

#[Esc][h] man 当前命令时,显示简短说明
alias run-help >&/dev/null && unalias run-help
autoload run-help

#历史命令 top10
#alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10'
#}}}

#路径别名 {{{
#进入相应的路径时只要 cd ~xxx
hash -d HIST="$HISTDIR"
#}}}

#{{{自定义补全
#补全 ping
zstyle ':completion:*:ping:*' hosts g.cn facebook.com
#补全 ssh scp sftp 等
my_accounts=(
{ly50247,osily,lg50247,root}@{192.168.1.1,192.168.0.1}
osily@localhost
)
zstyle ':completion:*:my-accounts' users-hosts $my_accounts

#def pacman-color completion as pacman
#compdef pacman-color=pacman
#}}}

#{{{ F1 计算器
arith-eval-echo() {
LBUFFER="${LBUFFER}echo \$(( "
RBUFFER=" ))$RBUFFER"
}
zle -N arith-eval-echo
bindkey "^[[11~" arith-eval-echo
#}}}

####{{{
#function timeconv { date -d @$1 +"%Y-%m-%d %T" }

# }}}

####{{{
function command_not_found_handler() {
python /usr/lib/command-not-found $1
return 0
}
# }}}

## END OF FILE   #################################################################
# vim:filetype=zsh foldmethod=marker autoindent expandtab   shiftwidth=4


export http_proxy=http://192.168.187.145:80
#export JAVA_HOME="/usr/lib/jvm/java-6-sun"
#export JRE_HOME="/usr/lib/jvm/java-6-sun/jre"
export PATH="$PATH:/home/osily/program/bin"
#exportCLASSPATH="$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/li b:/home/osily/program/tomcat620/lib:/home/osily/program/tomcat620/lib/servlet-api.jar"
alias upg="sudo apt-get update && sudo apt-get upgrade"
alias qq="nohup google-chrome --no-proxy-server --  app=http://web.qq.com >/dev/null 2>/dev/null &"
#alias tomstart="sudo ~/program/tomcat620/bin/startup.sh"
#alias tomshut="sudo ~/program/tomcat620/bin/shutdown.sh"
#alias js2="rhino"
alias gmusic="google-chrome --no-proxy-server --  app=http://g.top100.cn/12174704/html/player.html#loaded"
alias apa="dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P"

磨刀阶段:利器

上面包车型客车工具计划好了后,就足以起来计划那个工具了。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章