Contents
zsh 相关配置
oh-my-zsh Agnoster theme configration
zsh Agnoster 主题
操作指南
切换 oh-my-zsh 主题
vim ~/.zshrc
#================
ZSH_THEME="agnoster"
#================
安装 Powerline 字体
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
参考资料
Jazz Up Your “ZSH” Terminal In Seven Steps — A Visual Guide
https://medium.freecodecamp.org/jazz-up-your-zsh-terminal-in-seven-steps-a-visual-guide-e81a8fd59a38
Super Charging Terminal with Powerline
https://blog.netsarang.com/93/super-charging-terminal-with-powerline/
agnoster-zsh-theme
https://github.com/agnoster/agnoster-zsh-theme
oh-my-zsh wiki Themes
https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
OhMyZsh,Agnoster主题配置
https://swp-song.com/2017/09/04/Tools/OhMyZsh%E4%B8%ADAgnoster%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE/
主动更新 oh-my-zsh
omz update
【推荐】自动补全插件 zsh-autosuggestions
https://www.jianshu.com/p/aea390c1c8ef
【废弃】incr 增量自动补全插件 (不建议用 incr)
incr 这个插件扩展了 zsh 的自动补全功能,每按一个按键就会有补全提示,这个功能和 fish 的自动补全有些接近。
操作指南
1 新建插件目录 mkdir ~/.oh-my-zsh/plugins/incr
2 下载源码 wget https://raw.githubusercontent.com/ggggle/myEnv/master/ubuntu/.oh-my-zsh/plugins/incr/incr-0.2.zsh
,权限设置可以 644
。
3 修改配置文件 vim ~/.zshrc
,在结尾添加如下内容 source ~/.oh-my-zsh/plugins/incr/incr*.zsh
。
插件源码
原始地址
http://mimosa-pudica.net/zsh-incremental.html
http://mimosa-pudica.net/src/incr-0.2.zsh
修改版地址
https://raw.githubusercontent.com/ggggle/myEnv/master/ubuntu/.oh-my-zsh/plugins/incr/incr-0.2.zsh
# Incremental completion for zsh
# by y.fujii <y-fujii at mimosa-pudica.net>, public domain
autoload -U compinit
zle -N self-insert self-insert-incr
zle -N vi-cmd-mode-incr
zle -N vi-backward-delete-char-incr
zle -N backward-delete-char-incr
zle -N expand-or-complete-prefix-incr
compinit
bindkey -M viins '^[' vi-cmd-mode-incr
bindkey -M viins '^h' vi-backward-delete-char-incr
bindkey -M viins '^?' vi-backward-delete-char-incr
bindkey -M viins '^i' expand-or-complete-prefix-incr
bindkey -M emacs '^h' backward-delete-char-incr
bindkey -M emacs '^?' backward-delete-char-incr
bindkey -M emacs '^i' expand-or-complete-prefix-incr
unsetopt automenu
compdef -d scp
compdef -d tar
compdef -d make
compdef -d java
compdef -d svn
compdef -d cvs
# TODO:
# cp dir/
now_predict=0
function limit-completion
{
if ((compstate[nmatches] <= 1)); then
zle -M ""
elif ((compstate[list_lines] > 6)); then
compstate[list]=""
zle -M "too many matches."
fi
}
function correct-prediction
{
if ((now_predict == 1)); then
if [[ "$BUFFER" != "$buffer_prd" ]] || ((CURSOR != cursor_org)); then
now_predict=0
fi
fi
}
function remove-prediction
{
if ((now_predict == 1)); then
BUFFER="$buffer_org"
now_predict=0
fi
}
function show-prediction
{
# assert(now_predict == 0)
if
((PENDING == 0)) &&
((CURSOR > 1)) &&
[[ "$PREBUFFER" == "" ]] &&
[[ "$BUFFER[CURSOR]" != " " ]]
then
cursor_org="$CURSOR"
buffer_org="$BUFFER"
comppostfuncs=(limit-completion)
zle complete-word
cursor_prd="$CURSOR"
buffer_prd="$BUFFER"
BUFFER="$buffer_org"
CURSOR="$cursor_org"
echo -n "\e[32m"
else
zle -M ""
fi
}
function preexec
{
echo -n "\e[39m"
}
function vi-cmd-mode-incr
{
correct-prediction
remove-prediction
zle vi-cmd-mode
}
function self-insert-incr
{
correct-prediction
remove-prediction
if zle .self-insert; then
show-prediction
fi
}
function vi-backward-delete-char-incr
{
correct-prediction
remove-prediction
if zle vi-backward-delete-char; then
show-prediction
fi
}
function backward-delete-char-incr
{
correct-prediction
remove-prediction
if zle backward-delete-char; then
show-prediction
fi
}
function expand-or-complete-prefix-incr
{
correct-prediction
if ((now_predict == 1)); then
CURSOR="$cursor_prd"
now_predict=0
comppostfuncs=(limit-completion)
zle list-choices
else
remove-prediction
zle expand-or-complete-prefix
fi
}
参考资料
1 (incr 修改版) zsh-incr自动补全插件
2 How to make zsh completion show the first guess on the same line (like fish’s)?
3 https://github.com/zsh-users/zsh-autosuggestions
4 incr.zsh 补全插件 让你在zsh 模式下全自动补全指令或目录
Leave a Reply