blob: 1d4425efb7809f76a7625d8caed4afc778310ed7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#!/usr/bin/env bash
# package_dirs records directories of all installed packages. It is used
# to help clean unused packages.
package_dirs_file=/tmp/my-vim-package-dirs
[ -f $package_dirs_file ] && rm $package_dirs_file
package_dirs=()
update_package () {
name=$1
remote_url=$2
load_type='start'
[ $# -ge 3 ] && load_type=$3
package_dir="$HOME/.vim/pack/vendor/$load_type/$name"
echo "$package_dir" >> $package_dirs_file
if [ ! -d $package_dir ]; then
echo "$name : Installing ... "
mkdir -p $package_dir
git clone --depth 1 $remote_url $package_dir && echo "$name : Done" || echo "$name : FAIL"
fi
cd $package_dir
git fetch origin > /dev/null
UPSTREAM='@{u}'
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse "$UPSTREAM")
BASE=$(git merge-base @ "$UPSTREAM")
UPDATED=0
if [ $LOCAL != $REMOTE -a $LOCAL = $BASE ]; then
echo "$name : Updating ... "
git pull && echo "$name : Done" || echo "$name : FAIL"
UPDATED=1
else
echo "$name : Up to date"
fi
git submodule update --init --recursive --depth 1
if [ $UPDATED -eq 1 -a $# -ge 4 ]; then
$4
fi
}
clean () {
if [ ! -f $package_dirs_file ]; then
return
fi
while IFS= read -r line; do
package_dirs+=("$line")
done < $package_dirs_file
for load_type in 'opt' 'start'; do
for package_name in $(ls $HOME/.vim/pack/vendor/$load_type); do
package_dir=$HOME/.vim/pack/vendor/$load_type/$package_name
if [[ ! " ${package_dirs[*]} " =~ " ${package_dir} " ]]; then
read -r -p "rm -rf $package_dir? [y/N]: " response
response=${response,,}
if [[ "$response" =~ ^(yes|y)$ ]]; then
rm -rf $package_dir
fi
fi
done
done
rm $package_dirs_file
}
install_ycm () {
opts=' --clangd-completer'
if [ -f /usr/bin/go -o -f /usr/local/bin/go ]; then
opts="$opts --go-completer"
fi
python3 ./install.py $opts
}
update_package 'YouCompleteMe' 'https://github.com/ycm-core/YouCompleteMe.git' 'start' 'install_ycm' &
update_package "nnn.vim" "https://github.com/mcchrish/nnn.vim.git" &
update_package 'vim-fugitive' 'https://github.com/tpope/vim-fugitive.git' &
update_package 'fzf' 'https://github.com/junegunn/fzf.git' &
update_package 'fzf.vim' 'https://github.com/junegunn/fzf.vim.git' &
update_package 'ultisnips' 'https://github.com/SirVer/ultisnips.git' &
update_package 'vim-snippets' 'https://github.com/honza/vim-snippets.git' &
update_package 'onedark.vim' 'https://github.com/joshdick/onedark.vim.git' 'opt' &
update_package undotree https://github.com/mbbill/undotree.git &
update_package ale https://github.com/dense-analysis/ale.git &
update_package vim-eunuch https://github.com/tpope/vim-eunuch.git &
update_package vim-sleuth https://github.com/tpope/vim-sleuth.git &
update_package tabular https://github.com/godlygeek/tabular.git &
update_package vim-rooter https://github.com/airblade/vim-rooter.git &
update_package vim-gutentags https://github.com/ludovicchabant/vim-gutentags.git &
update_package vim-airline https://github.com/vim-airline/vim-airline.git &
update_package vim-airline-themes https://github.com/vim-airline/vim-airline-themes.git &
update_package vim-easymotion https://github.com/easymotion/vim-easymotion.git &
update_package editorconfig-vim https://github.com/editorconfig/editorconfig-vim.git &
update_package vim-godot https://github.com/habamax/vim-godot.git &
update_package vim-ledger https://github.com/ledger/vim-ledger.git &
update_package vim-signify https://github.com/mhinz/vim-signify.git &
update_package vim-unimpaired https://github.com/tpope/vim-unimpaired.git &
update_package vim-surround https://github.com/tpope/vim-surround.git &
update_package vim-rsi https://github.com/tpope/vim-rsi.git &
update_package vim-dispatch https://github.com/tpope/vim-dispatch.git &
wait
vim '"+helptags ALL"' +q
clean
|