oh-my-zsh 用久了总感觉有点臃肿,时不时还需要更新(不觉得这玩意需要经常更新),我只需要精简的无需(经常)变动的 zsh 配置,或许我只是个控制狂,正如我不喜欢 rvm 而用 chruby 那样。
zsh 本身已经很强大了,只不过默认功能都是关闭的而已。一些精简的框架比如 prezto 和 pure 所做的也只是打开了一部分默认功能(还有一个漂亮的 prompt)。
备份和删除所有 zsh 相关配置,编辑 .zshrc 开始配置:
Tab 补全
autoload -Uz compinit && compinit # 打开默认补全功能
setopt complete_in_word # 光标在词中间也补全
setopt auto_menu
setopt autocd # 输入文件夹名直接 cd 进去
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&' # 删除补全生成多余 space
ls、ll、la
# 解决 Linux 和 macOS 的 ls 选项不兼容
ls --version &>/dev/null
if [ $? -eq 0 ]; then
lsflags="--color --group-directories-first -F"
else
lsflags="-GF"
export CLICOLOR=1
fi
alias ls="ls ${lsflags}"
alias ll="ls ${lsflags} -l"
alias la="ls ${lsflags} -la"
git 相关
alias gd="git diff"
alias gs="git status 2>/dev/null"
function gc() { git clone ssh://[email protected]/"$*" }
function gg() { git commit -m "$*" }
# !!!以下只适用于 macOS !!! ,按 gto 直接从命令行调用浏览器打开项目主页
function gto() { git remote -v | awk '/origin.*push/ {print $2}' | xargs open }
根据自己实际需要的功能一步步增加配置,这个过程也能思索哪些是必要的,发现增加一些方便的功能。