Отървете се от вашия мениджър на плъгини Vim
С появата на Vim 8.0 вече има собствен начин за добавяне на плъгини (сега наричани пакети), така че можете най-накрая да се отървете от вашия мениджър на пакети Vundle/Pathogen/<insert flavour here>
.
Аз съм щастлив потребител на Vundle от няколко години, но възможността да опростя конфигурацията си винаги е добре дошла.
Ако сте използвали Pathogen преди, ще намерите естественото управление на пакети на Vim 8 за интуитивно.
Просто поставете пакета си в път към директория по следния начин:
~/.vim/pack/<package group>/start/<your package>
Каква е тази папка start
? Радвам се, че попитахте... Има две възможни папки, които можете да имате на това ниво.
- Папката
start
съдържа пакети, които се зареждат при стартиране на Vim. - Папката
opt
съдържа „незадължителен“ пакет, който не се зарежда, но може да бъде зареден по избор с помощта на:packadd packagename
във Vim.
Но Vundle ми липсва...
Ако управлението на вашите пакети с помощта на git подмодули не звучи забавно (и не е, според мен), с няколко реда bash можем да получим скрипт, който ще инсталира или актуализира вашите пакети. Точно като Vundle, но по-бързо!
Винаги намирам пример най-лесно, така че вижте по-долу. Двата метода в горната част са цялата функционалност за инсталиране и актуализиране на мениджъра на пакети!
На моята машина този файл се намира на: ~/.vim/pack/install.sh
и стартирането му актуализира съществуващи пакети и инсталира нови. Много е бързо! Добавянето на нов пакет е един ред в този файл, така че според мен не съм загубил нищо от удобството на Vundle.
#!/usr/bin/env bash # Create new folder in ~/.vim/pack that contains a start folder and cd into it. # # Arguments: # package_group, a string folder name to create and change into. # # Examples: # set_group syntax-highlighting # function set_group () { package_group=$1 path="$HOME/.vim/pack/$package_group/start" mkdir -p "$path" cd "$path" || exit } # Clone or update a git repo in the current directory. # # Arguments: # repo_url, a URL to the git repo. # # Examples: # package https://github.com/tpope/vim-endwise.git # function package () { repo_url=$1 expected_repo=$(basename "$repo_url" .git) if [ -d "$expected_repo" ]; then cd "$expected_repo" || exit result=$(git pull --force) echo "$expected_repo: $result" else echo "$expected_repo: Installing..." git clone -q "$repo_url" fi } ( set_group ruby package https://github.com/tpope/vim-rails.git & package https://github.com/tpope/vim-rake.git & package https://github.com/tpope/vim-bundler.git & package https://github.com/tpope/vim-endwise.git & wait ) & ( set_group syntax package https://github.com/kchmck/vim-coffee-script.git & package https://github.com/tpope/vim-markdown.git & package https://github.com/ap/vim-css-color.git & wait ) & ( set_group colorschemes package https://github.com/altercation/vim-colors-solarized.git & wait ) & wait
Има малко баш, което може да е непознато:
( <set_group and package invocations> ) &
Това стартира нов подобвивка, така че можем да извлечем всички тези пакети бързо!wait
магическата ключова дума, която казва на bash да изчака, докато всички подобвивки завършат, преди да продължи. Bash ще изчаква само подчерупки, които са пряко дете на текущия процес, следователно защо имаме нужда от това извикване във всяка от нашите подчерупки, за да изчакаме всякоpackage
извикване да завърши, преди да продължим.
Е, надявам се това да ви вдъхнови да насочите вашия мениджър на пакети и да преминете към по-родно изживяване на Vim! Намаляването на зависимостите винаги се чувства добре.
Можете да разгледате пълната конфигурация на Vim тук: https://github.com/camfowler/vim