Odpowiedzi:
Aby zainstalować wtyczkę, musimy wiedzieć, w jakiej formie się ona znajduje. Może to być:
.vim
plikplugin/*
, syntax/*
itp.) ( Co sprawia, że plugin Vundle jest kompatybilny i czy inne menedżery wtyczek są wymienne? )Pojedynczy .vim
plik powinien zostać umieszczony w .vim/plugin
katalogu.
Plik Vimball można zainstalować , otwierając go w Vimie i uruchamiając :source %
.
Zestaw plików w standardowym układzie katalogów można zainstalować, kopiując je .vim
lub używając menedżera pakietów wtyczek .
Wtyczki mogą zależeć od niektórych funkcji. W związku z tym:
Jednak w przypadku większości wtyczek może to nie mieć znaczenia.
Lubię używać menedżera wtyczek vim .
Problem z ręczną instalacją wtyczki polega na tym, że usunięcie wtyczki jest raczej trudne ; często masz kilka różnych plików w różnych katalogach, musisz je ręcznie znaleźć i usunąć.
Aktualizacja problemów jest podobnie trudna: co się stanie, jeśli autoload/old-name.vim
zostanie przemianowana na autoload/new-name.vim
? Masz teraz zarówno starą, jak i nową wersję wtyczki.
vim-plug
rozwiązuje to, przechowując każdą wtyczkę we własnym katalogu; zawiera także polecenie łatwej instalacji / usunięcia wtyczki, dzięki czemu nie musisz się rozbierać przy rozpakowywaniu wtyczek i tym podobnych.
Kluczową zaletą wtyczki vim nad Pathogen jest to, że wtyczka vim pozwala łatwiej instalować i usuwać wtyczki. Wszystko, co robi Pathogen, umożliwia umieszczenie każdej wtyczki w osobnym, zawartym katalogu.
vim-plug opiera się na git ; dla MS Windows, potrzebujesz msysgit .
Możesz zdefiniować wtyczki w swoim vimrc w następujący sposób:
call plug#begin('~/.vim/plugged')
" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')
Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc
call plug#end()
Następnie uruchom ponownie Vima, a następnie zainstaluj wtyczki za pomocą:
:PlugInstall
Spowoduje to wstawienie wtyczek do ~/.vim/plugged
lub $HOME\vimfiles\plugged
dla MS Windows.
Możesz dodać
ten fragment z FAQ do pliku vimrc przed plug#begin()
wywołaniem:
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall
endif
Pamiętaj, że musisz curl
to zadziałać. Jest to prawie zawsze dostępne w systemach Linux i OSX, ale nie w MS Windows; więc ta sztuczka tam nie zadziała ...
Aby usunąć wtyczkę, usuń ją z pliku vimrc i uruchom:
:PlugClean
Zauważ, że vim-plug nie obsługuje instalowania skryptów ze strony skryptów Vima, ale te skrypty są dublowane w GitHub , więc nie musisz tego robić.
Istnieją również dodatkowe zalety, takie jak łatwiejsza aktualizacja wtyczki i ładowanie na żądanie w celu uzyskania lepszej wydajności. Możesz także łatwo skopiować vimrc na inny komputer, uruchomić :PlugInstall
i mieć wszystkie swoje wtyczki.
Uwaga: jest więcej menedżerów wtyczek; Zdarza mi się używać vim-plug
. Zobacz także: Jaka jest różnica między menedżerami pakietów vim?
Pathogen to menedżer ścieżek uruchomieniowych, który ładuje wtyczki w Vimie. Ułatwia instalację wtyczki; Oto jak to działa:
Uwaga: Jeśli używasz systemu Windows, należy wymienić ~/.vim
z $HOME\vimfiles
.
Skopiuj pathogen.vim
do ~/.vim/autoload/pathogen.vim
.
Utwórz ~/.vim/bundle
katalog, jeśli jeszcze nie istnieje.
Dodaj następujący wiersz na samym początku .vimrc
:
execute pathogen#infect()
Jesteś skończony! Jeśli chcesz dodać wtyczkę, po prostu skopiuj cały katalog wtyczki do ~/.vim/bundle
lub git clone
tam. Na przykład:
cd ~/.vim/bundle
git clone https://github.com/tpope/vim-surround
* Uwaga: jeśli wtyczka ma postać .vim
pliku, nie będzie działać z Pathogen. Skopiuj go ~/.vim/plugin
zamiast tego (może być konieczne utworzenie tego katalogu, jeśli nie istnieje).
git submodule add
(zamiast git clone
), jeśli twoja konfiguracja vim jest już częścią twojego projektu git.
runtimepath
opcją i to wszystko. W ogóle nie dotyczy aktualizacji, dodawania, pobierania, usuwania wtyczek.
Wersja 8 wprowadza nowy mechanizm pakietów, który w dużej mierze zastępuje potrzebę istniejących menedżerów wtyczek (patogen, vim-plug, vundle itp.) W momencie pisania (2017).
Z dokumentacji :
Pakiet Vima to katalog zawierający jedną lub więcej wtyczek
Katalog pakietu zawiera dwa podkatalogi:
start/
- zawiera wtyczki, które zostaną automatycznie załadowaneopt/
- zawiera wtyczki ładowane na żądanie za pomocą :packadd
Może się to wydawać nieco skomplikowane, ale w praktyce wystarczy dodać tutaj wtyczkę :
↓ package name
~/ .vim / pack / bundle / start / some-plugin
↑ packages dir ↑ plugin dir
W systemie Windows : użyj ~\vimfiles\pack\
zamiast~/.vim/pack/
Zgodnie z konwencją użyliśmy nazwy pakietu „pakunek” jako katalogu, który będzie zawierał wszystkie nasze wtyczki. Możesz użyć dowolnej nazwy, a nawet umieścić wtyczki w osobnych katalogach pakietów, jeśli naprawdę chcesz.
mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git
W systemie Windows : użyj ~\vimfiles\pack\
zamiast~/.vim/pack/
Następnym razem, gdy uruchomisz Vima, wtyczka załaduje się automatycznie.
.vim
ma kontrolę wersji, może być lepiej zainstalować wtyczki z podmodułami git; patrz shapeshed.com/vim-packages/#adding-a-package .
Nie zapominajmy o wspaniałym i potężnym Vundle !
Vundle to kompletny menedżer wtyczek z funkcjami dla:
:PluginSearch
):PluginInstall
):PluginUpdate
):PluginClean
)Jak widać, przypomina to menedżera wtyczek vim wspomnianego przez Carpetsmoker. Nie wiem, który był pierwszy, ale ich interfejsy API wyglądają bardzo podobnie do mnie, podobnie jak proces instalacji .
.vimrc
, więc podczas instalowania na nowym serwerze wystarczy instalacja Vundle + .vimrc
instalacja wszystkiego. Dodatkowo możesz komentować swoje wtyczki i „czyścić” je, ale możesz skomentować je za kilka miesięcy lub lat później, gdy długo zapomnisz ich nazw.
Najprawdopodobniej wtyczka będzie pojedynczym plikiem .vim.
W takim przypadku szukałem pomocy, eksperymentowałem i wymyśliłem następujące. Z poziomu vima (tryb poleceń) wpisz:
:set runtimepath
Spowoduje to wyświetlenie serii katalogów. Niektóre z tych katalogów będą miały plugin
podkatalog. Umieszczenie dowolnego pliku .vim w jednym z tych plugin
podkatalogów spowoduje automatyczne załadowanie go po uruchomieniu vim z dowolnego miejsca.
Dla mnie, na Ubuntu Linux, okazało się, że /usr/share/vim/vim74/plugin
działało dobrze, aby zainstalować dla wszystkich użytkowników. Możesz potrzebować uprawnień administratora, aby skopiować tutaj plik (przedrostek cp
lub mv
polecenie sudo
).
vim74
, co oznacza, że jest on specyficzny dla wersji, więc aktualizacja do Vima 8.0 spowoduje utratę tej wtyczki. Bardziej odpornym na aktualizację sposobem byłoby użycie /etc/vim/
do tego (utwórz go, jeśli nie jest obecny, i dodaj tę ścieżkę do, runtimepath
jeśli nie jest dostępny w /etc/vimrc
)
Most likely, your plugin will be a single .vim file
Nie zgadzam się. Ogromna większość wtyczek jest dostarczana z .txt
plikiem zawierającym dokument. Aby uzyskać funkcjonalny dokument, musisz wygenerować tagi. Również wiele wtyczek zawiera autoload
katalog. Myślę, że użycie menedżera wtyczek jest lepszym rozwiązaniem niż ręczne zarządzanie ścieżką runtimepath
/usr/share/vim/vimXX
jest podstawowym środowiskiem uruchomieniowym i nie jest miejscem konfiguracji / wtyczek witryny. Zamiast tego konfiguracje witryn / wtyczki powinny być umieszczane w dowolnym miejscu $VIM
w tym systemie (patrz :h vimfiles
). Zwykle /usr/share/vim
dzieje się tak w przypadku Ubuntu i prowadzi do dowiązań symbolicznych /etc/vim
. Ogólnie rzecz biorąc, /usr/local/
jest de facto miejscem konfiguracji witryny poza menedżerem pakietów . Zauważ, że Neovim korzysta z katalogów $XDG_(CONFIG|DATA)_DIRS
i site
, zapewniając lepsze domyślne ustawienia konfiguracji witryn.
Vire wykorzystuje najnowszy format paczki do instalowania wtyczek i obsługuje Vima i Neovima. Nie musisz wiedzieć, gdzie coś się dzieje. Wystarczy podać vimrc, a Vire zajmie się resztą.
vi
na dowolnym nowoczesnym polu prawdopodobnie po prostu uruchomi sięvim
z wyłączonymi niektórymi funkcjami. Wątpię, aby wiele osób miało obecnie dostęp do faktycznej Vi.