Jak zainstalować wtyczkę w Vim / vi?

96

Jak zainstalować wtyczkę w Vimie?

Czy to ma znaczenie:

  • Czy używam vi czy Vima?
  • Czy używam gVim?
  • Z jakiej wersji Vima korzystam?
  • Jaki jest mój system operacyjny?
elyashiv
źródło

Odpowiedzi:

65

Aby zainstalować wtyczkę, musimy wiedzieć, w jakiej formie się ona znajduje. Może to być:

Pojedynczy .vimplik powinien zostać umieszczony w .vim/pluginkatalogu.

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 .vimlub używając menedżera pakietów wtyczek .

Wtyczki mogą zależeć od niektórych funkcji. W związku z tym:

  • Może to mieć znaczenie, jeśli używasz Vi lub Vima,
  • Może mieć znaczenie, czy używasz gVim, czy nie (gVim zazwyczaj ma więcej funkcji włączonych w czasie kompilacji niż Vim w tej samej dystrybucji).
  • Może mieć znaczenie, którą wersję Vima używasz, ponieważ funkcja mogła zostać dodana po twojej wersji Vima.
  • Może mieć znaczenie, na jakim systemie operacyjnym jesteś, zwłaszcza jeśli wtyczka wywołuje polecenia zewnętrzne.

Jednak w przypadku większości wtyczek może to nie mieć znaczenia.

muru
źródło
9
To zdecydowanie ma znaczenie, jeśli używasz Vi - koncepcja wtyczek nie istnieje dla Vi. Oczywiście pisanie vina dowolnym nowoczesnym polu prawdopodobnie po prostu uruchomi się vimz wyłączonymi niektórymi funkcjami. Wątpię, aby wiele osób miało obecnie dostęp do faktycznej Vi.
tommcdo
37

wtyczka vim

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.vimzostanie przemianowana na autoload/new-name.vim? Masz teraz zarówno starą, jak i nową wersję wtyczki.

vim-plugrozwią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/pluggedlub $HOME\vimfiles\pluggeddla 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 curlto 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ć :PlugInstalli 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?

Martin Tournoij
źródło
1
Jedną z najważniejszych zalet wtyczki vim w porównaniu z innymi jest równoległa instalacja / aktualizacja wtyczek
r3bo0t
„te skrypty są dublowane w GitHub, więc nie trzeba tego robić”. Niestety skrobak dawno przestał działać. github.com/vim-scraper/vim-scraper/issues/…
Bluu
@Bluu Tak, skontaktowałem się z opiekunem z zeszłego roku; istnieją pewne techniczne bity, które wymagają aktualizacji, i nikt tak naprawdę nie robi tego, by to zrobić: - / Jest to jednak nadal nieco przydatne, ponieważ wiele skryptów nie jest aktualizowanych tak często (szczególnie te, które nie są w GitHub).
Martin Tournoij
25

Patogen

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ć ~/.vimz $HOME\vimfiles.

  1. Skopiuj pathogen.vimdo ~/.vim/autoload/pathogen.vim.

  2. Utwórz ~/.vim/bundlekatalog, jeśli jeszcze nie istnieje.

  3. Dodaj następujący wiersz na samym początku .vimrc:

    execute pathogen#infect()
    
  4. Jesteś skończony! Jeśli chcesz dodać wtyczkę, po prostu skopiuj cały katalog wtyczki do ~/.vim/bundlelub git clonetam. Na przykład:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Uwaga: jeśli wtyczka ma postać .vimpliku, nie będzie działać z Pathogen. Skopiuj go ~/.vim/pluginzamiast tego (może być konieczne utworzenie tego katalogu, jeśli nie istnieje).

Klamka
źródło
5
Uwaga: patogen nie jest menedżerem wtyczek.
romainl
lub git submodule add(zamiast git clone), jeśli twoja konfiguracja vim jest już częścią twojego projektu git.
Martin York,
@romainl co to jest?
RodrikTheReader
3
To manager runtimepath. Jak w tym zarządza runtimepathopcją i to wszystko. W ogóle nie dotyczy aktualizacji, dodawania, pobierania, usuwania wtyczek.
romainl,
1
Zobacz także doskonały Gist @romainl na temat korzystania z Pathogenu .
icc97
23

Vim 8+ / Neovim

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ładowane
  • opt/ - 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.

Przykład: instalacja sensible.vim

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.

Michael Kropat
źródło
3
Jeśli ktoś .vimma kontrolę wersji, może być lepiej zainstalować wtyczki z podmodułami git; patrz shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton,
Gdyby istniała odpowiedź czasowa, byłaby to obecnie akceptowana odpowiedź na dzień dzisiejszy.
Amin NAIRI
12

Nie zapominajmy o wspaniałym i potężnym Vundle !

Vundle to kompletny menedżer wtyczek z funkcjami dla:

  • Wyszukiwanie wtyczek (używanie :PluginSearch)
  • Instalowanie wtyczek (używanie :PluginInstall)
  • Aktualizowanie wtyczek (za pomocą :PluginUpdate)
  • Zarządzanie ścieżką ładowania wtyczek w .vimrc (po prostu komentuj wpisy wtyczek, których nie chcesz ładować)
  • Usuwanie wtyczek, których już nie chcesz (używasz :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 .

Ankieta Cody
źródło
Przyjemna rzecz w Vundle jest podobna do vim-plug, w której możesz przechowywać wszystkie swoje wtyczki .vimrc, więc podczas instalowania na nowym serwerze wystarczy instalacja Vundle + .vimrcinstalacja 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.
icc97
Plus lubię Vundle, ponieważ jest stosunkowo przyjazny dla początkujących. Daje prawie tylko jeden sposób robienia rzeczy i działa w podobny sposób jak Sublime Text.
icc97
1

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 pluginpodkatalog. Umieszczenie dowolnego pliku .vim w jednym z tych pluginpodkatalogó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/plugindziałało dobrze, aby zainstalować dla wszystkich użytkowników. Możesz potrzebować uprawnień administratora, aby skopiować tutaj plik (przedrostek cplub mvpolecenie sudo).

Gwiezdny człowiek
źródło
3
IMHO to nie jest najlepsza praktyka. Pamiętaj, że masz 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, runtimepathjeśli nie jest dostępny w /etc/vimrc)
grodzik
3
Aby dodać do komentarza @grodzik: Most likely, your plugin will be a single .vim fileNie zgadzam się. Ogromna większość wtyczek jest dostarczana z .txtplikiem zawierającym dokument. Aby uzyskać funkcjonalny dokument, musisz wygenerować tagi. Również wiele wtyczek zawiera autoloadkatalog. Myślę, że użycie menedżera wtyczek jest lepszym rozwiązaniem niż ręczne zarządzanie ścieżką runtimepath
statox
-1 /usr/share/vim/vimXXjest podstawowym środowiskiem uruchomieniowym i nie jest miejscem konfiguracji / wtyczek witryny. Zamiast tego konfiguracje witryn / wtyczki powinny być umieszczane w dowolnym miejscu $VIMw tym systemie (patrz :h vimfiles). Zwykle /usr/share/vimdzieje 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)_DIRSi site, zapewniając lepsze domyślne ustawienia konfiguracji witryn.
ZeroKnight
1

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ą.

genotrancja
źródło