1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 05:20:04 +08:00

Update help

This commit is contained in:
wsdjeg 2018-01-27 21:28:46 +08:00
parent 92577b1980
commit f191b66912

View File

@ -8,26 +8,98 @@
# License: MIT license # License: MIT license
#============================================================================= #=============================================================================
# Init option {{{
# Reset
Color_off='\033[0m' # Text Reset Color_off='\033[0m' # Text Reset
Version='0.6.0'
# terminal color template {{{
# Regular Colors # Regular Colors
Red='\033[0;31m' Black='\033[0;30m' # Black
Blue='\033[0;34m' Red='\033[0;31m' # Red
Green='\033[0;32m' Green='\033[0;32m' # Green
Yellow='\033[0;33m' # Yellow
Blue='\033[0;34m' # Blue
Purple='\033[0;35m' # Purple
Cyan='\033[0;36m' # Cyan
White='\033[0;37m' # White
# Bold
BBlack='\033[1;30m' # Black
BRed='\033[1;31m' # Red
BGreen='\033[1;32m' # Green
BYellow='\033[1;33m' # Yellow
BBlue='\033[1;34m' # Blue
BPurple='\033[1;35m' # Purple
BCyan='\033[1;36m' # Cyan
BWhite='\033[1;37m' # White
# Underline
UBlack='\033[4;30m' # Black
URed='\033[4;31m' # Red
UGreen='\033[4;32m' # Green
UYellow='\033[4;33m' # Yellow
UBlue='\033[4;34m' # Blue
UPurple='\033[4;35m' # Purple
UCyan='\033[4;36m' # Cyan
UWhite='\033[4;37m' # White
# Background
On_Black='\033[40m' # Black
On_Red='\033[41m' # Red
On_Green='\033[42m' # Green
On_Yellow='\033[43m' # Yellow
On_Blue='\033[44m' # Blue
On_Purple='\033[45m' # Purple
On_Cyan='\033[46m' # Cyan
On_White='\033[47m' # White
# High Intensity
IBlack='\033[0;90m' # Black
IRed='\033[0;91m' # Red
IGreen='\033[0;92m' # Green
IYellow='\033[0;93m' # Yellow
IBlue='\033[0;94m' # Blue
IPurple='\033[0;95m' # Purple
ICyan='\033[0;96m' # Cyan
IWhite='\033[0;97m' # White
# Bold High Intensity
BIBlack='\033[1;90m' # Black
BIRed='\033[1;91m' # Red
BIGreen='\033[1;92m' # Green
BIYellow='\033[1;93m' # Yellow
BIBlue='\033[1;94m' # Blue
BIPurple='\033[1;95m' # Purple
BICyan='\033[1;96m' # Cyan
BIWhite='\033[1;97m' # White
# High Intensity backgrounds
On_IBlack='\033[0;100m' # Black
On_IRed='\033[0;101m' # Red
On_IGreen='\033[0;102m' # Green
On_IYellow='\033[0;103m' # Yellow
On_IBlue='\033[0;104m' # Blue
On_IPurple='\033[0;105m' # Purple
On_ICyan='\033[0;106m' # Cyan
On_IWhite='\033[0;107m' # White
# }}}
# version
Version='0.6.0'
#System name #System name
System="$(uname -s)" System="$(uname -s)"
# }}}
# need_cmd {{{
need_cmd () { need_cmd () {
if ! hash "$1" &>/dev/null; then if ! hash "$1" &>/dev/null; then
error "需要安装 '$1' (缺少相关命令)" error "需要 '$1' (找不到命令)"
exit 1 exit 1
fi fi
} }
# }}}
# success/info/error/warn {{{
msg() { msg() {
printf '%b\n' "$1" >&2 printf '%b\n' "$1" >&2
} }
@ -37,7 +109,7 @@ success() {
} }
info() { info() {
msg "${Blue}==>${Color_off} ${1}${2}" msg "${Blue}[➭]${Color_off} ${1}${2}"
} }
error() { error() {
@ -48,19 +120,31 @@ error() {
warn () { warn () {
msg "${Red}[✘]${Color_off} ${1}${2}" msg "${Red}[✘]${Color_off} ${1}${2}"
} }
# }}}
# echo_with_color {{{
echo_with_color () {
printf '%b\n' "$1$2" >&2
}
# }}}
# fetch_repo {{{
fetch_repo () { fetch_repo () {
if [[ -d "$HOME/.SpaceVim" ]]; then if [[ -d "$HOME/.SpaceVim" ]]; then
info "正在更新 SpaceVim ..." info "正在更新 SpaceVim..."
git --git-dir "$HOME/.SpaceVim/.git" pull cd "$HOME/.SpaceVim"
success "SpaceVim 更新成功!" git pull
cd - > /dev/null 2>&1
success "SpaceVim 更新已完成"
else else
info "正在安装 SpaceVim ..." info "正在安装 SpaceVim..."
git clone https://github.com/SpaceVim/SpaceVim.git "$HOME/.SpaceVim" git clone https://github.com/SpaceVim/SpaceVim.git "$HOME/.SpaceVim"
success "SpaceVim 安装功!" success "SpaceVim 安装已完成"
fi fi
} }
# }}}
# install_vim {{{
install_vim () { install_vim () {
if [[ -f "$HOME/.vimrc" ]]; then if [[ -f "$HOME/.vimrc" ]]; then
mv "$HOME/.vimrc" "$HOME/.vimrc_back" mv "$HOME/.vimrc" "$HOME/.vimrc_back"
@ -69,154 +153,210 @@ install_vim () {
if [[ -d "$HOME/.vim" ]]; then if [[ -d "$HOME/.vim" ]]; then
if [[ "$(readlink $HOME/.vim)" =~ \.SpaceVim$ ]]; then if [[ "$(readlink $HOME/.vim)" =~ \.SpaceVim$ ]]; then
success "已为 vim 安装 SpaceVim" success "已为 vim 安装 SpaceVim"
else else
mv "$HOME/.vim" "$HOME/.vim_back" mv "$HOME/.vim" "$HOME/.vim_back"
success "备份 $HOME/.vim 至 $HOME/.vim_back" success "备份 $HOME/.vim 至 $HOME/.vim_back"
ln -s "$HOME/.SpaceVim" "$HOME/.vim" ln -s "$HOME/.SpaceVim" "$HOME/.vim"
success "已为 vim 安装 SpaceVim" success "已为 vim 安装 SpaceVim"
fi fi
else else
ln -s "$HOME/.SpaceVim" "$HOME/.vim" ln -s "$HOME/.SpaceVim" "$HOME/.vim"
success "已为 vim 安装 SpaceVim" success "已为 vim 安装 SpaceVim"
fi fi
} }
# }}}
# install_package_manager {{{
install_package_manager () { install_package_manager () {
if [[ ! -d "$HOME/.cache/vimfiles/repos/github.com/Shougo/dein.vim" ]]; then if [[ ! -d "$HOME/.cache/vimfiles/repos/github.com/Shougo/dein.vim" ]]; then
info "正在安装 dein.vim" info "正在安装 dein.vim"
git clone https://github.com/Shougo/dein.vim.git $HOME/.cache/vimfiles/repos/github.com/Shougo/dein.vim git clone https://github.com/Shougo/dein.vim.git $HOME/.cache/vimfiles/repos/github.com/Shougo/dein.vim
success "dein.vim 安装" success "dein.vim 安装已完成"
fi fi
} }
# }}}
# install_neovim {{{
install_neovim () { install_neovim () {
if [[ ! -d "$HOME/.config/" ]];then
mkdir "$HOME/.config/"
fi
if [[ -d "$HOME/.config/nvim" ]]; then if [[ -d "$HOME/.config/nvim" ]]; then
if [[ "$(readlink $HOME/.config/nvim)" =~ \.SpaceVim$ ]]; then if [[ "$(readlink $HOME/.config/nvim)" =~ \.SpaceVim$ ]]; then
success "已为 neovim 安装 SpaceVim" success "已为 neovim 安装 SpaceVim"
else else
mv "$HOME/.config/nvim" "$HOME/.config/nvim_back" mv "$HOME/.config/nvim" "$HOME/.config/nvim_back"
success "备份 $HOME/.config/nvim 至 $HOME/.config/nvim_back" success "备份 $HOME/.config/nvim 至 $HOME/.config/nvim_back"
ln -s "$HOME/.SpaceVim" "$HOME/.config/nvim" ln -s "$HOME/.SpaceVim" "$HOME/.config/nvim"
success "已为 neovim 安装 SpaceVim" success "已为 neovim 安装 SpaceVim"
fi fi
else else
ln -s "$HOME/.SpaceVim" "$HOME/.config/nvim" ln -s "$HOME/.SpaceVim" "$HOME/.config/nvim"
success "已为 neovim 安装 SpaceVim" success "已为 neovim 安装 SpaceVim"
fi fi
} }
# }}}
# uninstall_vim {{{
uninstall_vim () { uninstall_vim () {
if [[ -d "$HOME/.vim" ]]; then if [[ -d "$HOME/.vim" ]]; then
if [[ "$(readlink $HOME/.vim)" =~ \.SpaceVim$ ]]; then if [[ "$(readlink $HOME/.vim)" =~ \.SpaceVim$ ]]; then
rm "$HOME/.vim" rm "$HOME/.vim"
success "已为 vim 卸载 SpaceVim" success "已为 vim 卸载 SpaceVim"
if [[ -d "$HOME/.vim_back" ]]; then if [[ -d "$HOME/.vim_back" ]]; then
mv "$HOME/.vim_back" "$HOME/.vim" mv "$HOME/.vim_back" "$HOME/.vim"
success "$HOME/.vim_back 恢复原始文件" success "$HOME/.vim_back 恢复了原始配置"
fi fi
fi fi
fi fi
if [[ -f "$HOME/.vimrc_back" ]]; then if [[ -f "$HOME/.vimrc_back" ]]; then
mv "$HOME/.vimrc_back" "$HOME/.vimrc" mv "$HOME/.vimrc_back" "$HOME/.vimrc"
success "$HOME/.vimrc_back 恢复原始文件" success "$HOME/.vimrc_back 恢复了原始配置"
fi fi
} }
# }}}
# uninstall_neovim {{{
uninstall_neovim () { uninstall_neovim () {
if [[ -d "$HOME/.config/nvim" ]]; then if [[ -d "$HOME/.config/nvim" ]]; then
if [[ "$(readlink $HOME/.config/nvim)" =~ \.SpaceVim$ ]]; then if [[ "$(readlink $HOME/.config/nvim)" =~ \.SpaceVim$ ]]; then
rm "$HOME/.config/nvim" rm "$HOME/.config/nvim"
success "已为 neovim 卸载 SpaceVim" success "已为 neovim 卸载 SpaceVim"
if [[ -d "$HOME/.config/nvim_back" ]]; then if [[ -d "$HOME/.config/nvim_back" ]]; then
mv "$HOME/.config/nvim_back" "$HOME/.config/nvim" mv "$HOME/.config/nvim_back" "$HOME/.config/nvim"
success "$HOME/.config/nvim_back 恢复原始文件" success "$HOME/.config/nvim_back 恢复了原始配置"
fi fi
fi fi
fi fi
} }
# }}}
# check_requirements {{{
check_requirements () { check_requirements () {
info "SpaceVim 环境依赖检查:" info "正在检测 SpaceVim 依赖环境..."
if hash "git" &>/dev/null; then if hash "git" &>/dev/null; then
git_version=$(git --version) git_version=$(git --version)
success "检测依赖: ${git_version}" success "检测 git 版本:${git_version}"
else else
warn "检测依赖 : git" warn "缺少依赖:git"
fi fi
if hash "vim" &>/dev/null; then if hash "vim" &>/dev/null; then
is_vim8=$(vim --version | grep "Vi IMproved 8.0") is_vim8=$(vim --version | grep "Vi IMproved 8.0")
is_vim74=$(vim --version | grep "Vi IMproved 7.4") is_vim74=$(vim --version | grep "Vi IMproved 7.4")
if [ -n "$is_vim8" ]; then if [ -n "$is_vim8" ]; then
success "检测依赖: vim 8.0" success "检测到 Vim 版本: vim 8.0"
elif [ -n "$is_vim74" ]; then elif [ -n "$is_vim74" ]; then
success "检测依赖: vim 7.4" success "检测到 Vim 版本: vim 7.4"
else else
if hash "nvim" &>/dev/null; then if hash "nvim" &>/dev/null; then
success "检测依赖: nvim" success "检测到 Neovim 已安装成功"
else else
warn "SpaceVim 需要 vim 7.4 或更高版本" warn "SpaceVim 需要 Neovim 或者 vim 7.4 及更高版本"
fi fi
fi fi
if hash "nvim" &>/dev/null; then if hash "nvim" &>/dev/null; then
success "检测依赖: nvim" success "Check Requirements: nvim"
success "检测到 Neovim 已安装成功"
fi fi
else else
if hash "nvim" &>/dev/null; then if hash "nvim" &>/dev/null; then
success "检测依赖: nvim" success "检测到 Neovim 已安装成功"
else else
warn "检测依赖 : vim or nvim" warn "SpaceVim 需要 Neovim 或者 vim 7.4 及更高版本"
fi fi
fi fi
info "检测终端真色支持:" info "正在检测终端真色支持..."
sh -c "$(curl -fsSL https://raw.githubusercontent.com/JohnMorales/dotfiles/master/colors/24-bit-color.sh)" sh -c "$(curl -fsSL https://raw.githubusercontent.com/JohnMorales/dotfiles/master/colors/24-bit-color.sh)"
} }
# }}}
# usage {{{
usage () { usage () {
echo "SpaceVim 安装脚本 : V ${Version}" echo_with_color ${BWhite} "SpaceVim 安装脚本 : V ${Version}"
echo "" echo_with_color ""
echo "使用 : curl -sLf https://spacevim.org/cn/install.sh | bash -s -- [选项] [对象]" echo_with_color ${Color_off} " 这是 SpaceVim 初始化脚本,可用于定制安装、更新及卸载 SpaceVim。"
echo "" echo_with_color ""
echo " 这是一个 SpaceVim 初始化脚本。" echo_with_color "使用"
echo "" echo_with_color ""
echo "所有选项:" echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- [选项] [对象]"
echo "" echo_with_color ""
echo " -i, --install 为 Vim 和 neovim 安装 SpaceVim" echo_with_color "所有选项"
echo " -v, --version 显示当前版本" echo_with_color ""
echo " -u, --uninstall 卸载 SpaceVim" echo_with_color " -i, --install 为 vim 和 neovim 安装 SpaceVim"
echo " -c, --checkRequirements 检查环境依赖" echo_with_color " -v, --version 显示当前安装脚本的版本"
echo "" echo_with_color " -u, --uninstall 卸载 SpaceVim"
echo "使用示例:" echo_with_color " -c, --checkRequirements 检测环境依赖"
echo "" echo_with_color ""
echo " 同时为 vim 和 neovim 安装 SpaceVim" echo_with_color "使用示例"
echo "" echo_with_color ""
echo " curl -sLf https://spacevim.org/install.sh | bash" echo_with_color " 默认同时为 vim 和 neovim 安装 SpaceVim"
echo "" echo_with_color ""
echo " 仅为 Vim 或 neovim 安装 SpaceVim" echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash"
echo "" echo_with_color ""
echo " curl -sLf https://spacevim.org/install.sh | bash -s -- --install vim" echo_with_color " 只为 vim 或者 neovim 单独安装 SpaceVim"
echo " curl -sLf https://spacevim.org/install.sh | bash -s -- --install neovim" echo_with_color ""
echo "" echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- --install vim"
echo " 卸载 SpaceVim" echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- --install neovim"
echo "" echo_with_color ""
echo " curl -sLf https://spacevim.org/install.sh | bash -s -- --uninstall" echo_with_color " 卸载 SpaceVim"
echo_with_color ""
echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- --uninstall"
}
# }}}
# install_done {{{
install_done () {
echo_with_color ${Yellow} ""
echo_with_color ${Yellow} "Almost done!"
echo_with_color ${Yellow} "=============================================================================="
echo_with_color ${Yellow} "== Open Vim or Neovim and it will install the plugins automatically =="
echo_with_color ${Yellow} "=============================================================================="
echo_with_color ${Yellow} ""
echo_with_color ${Yellow} "That's it. Thanks for installing SpaceVim. Enjoy!"
echo_with_color ${Yellow} ""
} }
# }}}
# welcome {{{
welcome () {
echo_with_color ${Yellow} " /###### /## /##/## "
echo_with_color ${Yellow} " /##__ ## | ## | #|__/ "
echo_with_color ${Yellow} " | ## \__/ /###### /###### /####### /######| ## | ##/##/######/#### "
echo_with_color ${Yellow} " | ###### /##__ ##|____ ##/##_____//##__ #| ## / ##| #| ##_ ##_ ##"
echo_with_color ${Yellow} " \____ #| ## \ ## /######| ## | ########\ ## ##/| #| ## \ ## \ ##"
echo_with_color ${Yellow} " /## \ #| ## | ##/##__ #| ## | ##_____/ \ ###/ | #| ## | ## | ##"
echo_with_color ${Yellow} " | ######| #######| ######| ######| ####### \ #/ | #| ## | ## | ##"
echo_with_color ${Yellow} " \______/| ##____/ \_______/\_______/\_______/ \_/ |__|__/ |__/ |__/"
echo_with_color ${Yellow} " | ## "
echo_with_color ${Yellow} " | ## "
echo_with_color ${Yellow} " |__/ "
echo_with_color ${Yellow} " version : 0.7.0-dev by : spacevim.org "
}
# }}}
# download_font {{{
download_font () { download_font () {
url="https://raw.githubusercontent.com/wsdjeg/DotFiles/master/local/share/fonts/$1" url="https://raw.githubusercontent.com/wsdjeg/DotFiles/master/local/share/fonts/$1"
path="$HOME/.local/share/fonts/$1" path="$HOME/.local/share/fonts/$1"
if [[ -f "$path" ]] if [[ -f "$path" ]]
then then
success "已下载 $1" success "Downloaded $1"
else else
info "正在下载 $1" info "Downloading $1"
wget -q -O "$path" "$url" curl -s -o "$path" "$url"
success "已下载 $1" success "Downloaded $1"
fi fi
} }
# }}}
# install_fonts {{{
install_fonts () { install_fonts () {
if [[ ! -d "$HOME/.local/share/fonts" ]]; then if [[ ! -d "$HOME/.local/share/fonts" ]]; then
mkdir -p $HOME/.local/share/fonts mkdir -p $HOME/.local/share/fonts
@ -234,66 +374,82 @@ install_fonts () {
download_font "mtextra.ttf" download_font "mtextra.ttf"
download_font "symbol.ttf" download_font "symbol.ttf"
download_font "wingding.ttf" download_font "wingding.ttf"
echo -n "更新字体缓存 ..." info "Updating font cache, please wait ..."
if [ $System == "Darwin" ];then if [ $System == "Darwin" ];then
if [ ! -e "$HOME/Library/Fonts" ];then if [ ! -e "$HOME/Library/Fonts" ];then
mkdir "$HOME/Library/Fonts" mkdir "$HOME/Library/Fonts"
fi fi
cp $HOME/.local/share/fonts/* $HOME/Library/Fonts/ cp $HOME/.local/share/fonts/* $HOME/Library/Fonts/
else else
fc-cache -fv fc-cache -fv > /dev/null
mkfontdir "$HOME/.local/share/fonts" mkfontdir "$HOME/.local/share/fonts" > /dev/null
mkfontscale "$HOME/.local/share/fonts" mkfontscale "$HOME/.local/share/fonts" > /dev/null
fi fi
success "font cache done!"
echo "安装完毕"
} }
if [ $# -gt 0 ] # }}}
then
case $1 in ### main {{{
--uninstall|-u) main () {
info "Trying to uninstall SpaceVim" if [ $# -gt 0 ]
uninstall_vim then
uninstall_neovim case $1 in
exit 0 --uninstall|-u)
;; info "Trying to uninstall SpaceVim"
--checkRequirements|-c) uninstall_vim
check_requirements uninstall_neovim
exit 0 exit 0
;; ;;
--install|-i) --checkRequirements|-c)
need_cmd 'git' check_requirements
fetch_repo exit 0
if [ $# -eq 2 ] ;;
then --install|-i)
case $2 in welcome
neovim) need_cmd 'git'
install_neovim fetch_repo
exit 0 if [ $# -eq 2 ]
;; then
vim) case $2 in
install_vim neovim)
exit 0 install_neovim
esac install_done
fi exit 0
install_vim ;;
install_neovim vim)
exit 0 install_vim
;; install_done
--help|-h) exit 0
usage esac
exit 0 fi
;; install_vim
--version|-v) install_neovim
msg "${Version}" install_done
exit 0 exit 0
esac ;;
fi --help|-h)
# if no argv, installer will install SpaceVim usage
need_cmd 'git' exit 0
fetch_repo ;;
install_vim --version|-v)
install_neovim msg "${Version}"
install_package_manager exit 0
install_fonts esac
else
welcome
need_cmd 'git'
fetch_repo
install_vim
install_neovim
install_package_manager
install_fonts
install_done
fi
}
# }}}
main $@
# vim:set foldenable foldmethod=marker: