Come installo un plugin in Vim / vi?


96

Come installo un plugin in Vim?

Importa:

  • Se uso vi o Vim?
  • Se uso gVim?
  • Quale versione di Vim sto usando?
  • Qual è il mio sistema operativo?

Risposte:


65

Per installare un plugin, dobbiamo sapere in che forma si trova. Può essere:

Un singolo .vimfile dovrebbe essere inserito nella .vim/plugindirectory.

Un file Vimball può essere installato aprendolo in Vim ed eseguendolo :source %.

È possibile installare un set di file nel layout di directory standard copiandoli .vimo utilizzando un gestore di pacchetti plug-in .

I plugin possono dipendere da alcune funzionalità. Perciò:

  • Potrebbe essere importante se stai usando Vi o Vim,
  • Può essere importante utilizzare o meno gVim (in genere gVim ha più funzionalità abilitate al momento della compilazione rispetto a Vim nella stessa distribuzione).
  • Potrebbe essere importante quale versione di Vim utilizzi, dal momento che una funzione potrebbe essere stata aggiunta dopo la tua versione di Vim.
  • Potrebbe essere importante il sistema operativo in cui ti trovi, soprattutto se il plug-in chiama in comandi esterni.

Per la maggior parte dei plugin, tuttavia, potrebbe non avere importanza.


9
È sicuramente importante se stai usando Vi - il concetto di plugin non esiste per Vi. Naturalmente, digitando visu qualsiasi casella moderna probabilmente si avvierà solo vimcon alcune funzionalità disattivate. Dubito che molte persone abbiano accesso al Vi attuale in questi giorni.
Tommaso,

37

vim-plug

Mi piace usare il gestore plug-in vim-plug .

Il problema con l'installazione manuale di un plugin è che è piuttosto difficile rimuovere un plugin; spesso hai diversi file in diverse directory, devi trovarli manualmente e rimuoverli.

L'aggiornamento dei problemi è altrettanto difficile: cosa succede se autoload/old-name.vimviene rinominato autoload/new-name.vim? Ora avete sia un vecchio e la nuova versione di un plugin.

vim-plugrisolve questo problema memorizzando ogni plugin nella propria directory; include anche il comando per installare / rimuovere facilmente un plug-in, quindi non devi preoccuparti di decomprimere plug-in e simili.

Un vantaggio chiave di vim-plug su Pathogen è che vim-plug consente di installare e rimuovere plug-in più facilmente. Tutto ciò che Pathogen fa è consentire a ciascun plugin di trovarsi in una directory separata separata.

vim-plug si basa su git ; per MS Windows, vuoi msysgit .

Puoi definire plugin nel tuo vimrc in questo modo:

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()

Quindi riavviare Vim e quindi installare i plug-in con:

:PlugInstall

Questo inserirà i plugin in ~/.vim/pluggedo $HOME\vimfiles\pluggedper MS Windows.

Puoi aggiungere questo snippet dalle FAQ al tuo file vimrc prima della plug#begin()chiamata:

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

Nota che è necessario curlche funzioni. Questo è quasi sempre disponibile su Linux e OSX, ma non su MS Windows; quindi questo trucco non funzionerà lì ...

Per rimuovere un plug-in, rimuoverlo dal file vimrc ed eseguire:

:PlugClean

Si noti che vim-plug non supporta l'installazione di script dal sito Web degli script Vim, ma tali script sono riprodotti su GitHub , quindi non è necessario farlo.

Ci sono anche alcuni vantaggi aggiuntivi come l'aggiornamento più semplice del plugin e il caricamento su richiesta per prestazioni migliori. Puoi anche copiare facilmente il tuo vimrc su un altro computer, eseguirlo :PlugInstalle avere tutti i tuoi plugin.

Nota che ci sono più gestori di plugin; Mi capita di usare vim-plug. Vedi anche: Qual è la differenza tra i gestori di pacchetti vim?


1
uno dei vantaggi più importanti che vim-plug ha sugli altri è l'installazione / aggiornamento in parallelo dei plugin
r3bo0t

"quegli script sono specchiati su GitHub, quindi non c'è bisogno di farlo." Purtroppo il raschietto ha smesso di funzionare molto tempo fa. github.com/vim-scraper/vim-scraper/issues/…
Bluu

@Bluu Sì, ho contattato il manutentore dello scorso anno; ci sono alcuni bit tecnici che necessitano di aggiornamento, e nessuno si sta davvero intensificando per fare questo aggiornamento: - / È comunque un po 'utile, dato che molti script non vengono aggiornati molto spesso (specialmente quelli che non sono su GitHub).
Martin Tournoij,

25

patogeno

Pathogen è un gestore di percorsi di runtime, che carica plugin all'interno di Vim. Rende semplice l'installazione dei plugin; Ecco come funziona:

nota: se si utilizza Windows, sostituirlo ~/.vimcon $HOME\vimfiles.

  1. Copia pathogen.vimin ~/.vim/autoload/pathogen.vim.

  2. Crea la ~/.vim/bundledirectory, se non esiste già.

  3. Aggiungi la seguente riga all'inizio del tuo .vimrc:

    execute pathogen#infect()
    
  4. Hai finito! Quando vuoi aggiungere un plugin, copia semplicemente l'intera directory del plugin ~/.vim/bundleo git clonelì. Per esempio:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Avvertenza: se il tuo plugin ha la forma di un .vimfile, non funzionerà con Pathogen. Copiarlo ~/.vim/plugininvece (potrebbe essere necessario creare questa directory se non esiste).


5
Nota: pathogen non è un gestore di plugin.
romainl

o git submodule add(invece di git clone) se la tua configurazione di vim fa già parte del tuo progetto git.
Martin York,

@romainl che cos'è allora?
RodrikTheReader il

3
È un manager di runtimepath. Come in esso gestisce l' runtimepathopzione e questo è tutto. Non si occupa di aggiornare, aggiungere, recuperare, rimuovere plug-in.
romainl,

1
Vedi anche l'eccellente sintesi di @romainl sull'uso di Pathogen .
icc97,

23

Vim 8+ / Neovim

La versione 8 introduce un nuovo meccanismo di pacchetti che sostituisce ampiamente la necessità dei gestori di plugin esistenti (patogeno, vim-plug, vundle, ecc.) Al momento della stesura (2017).

Dalla documentazione :

Un pacchetto Vim è una directory che contiene uno o più plugin

Una directory del pacchetto contiene due sottodirectory:

  • start/ - contiene plugin che verranno caricati automaticamente
  • opt/ - contiene plugin caricati su richiesta con :packadd

Può sembrare un po 'complicato, ma in pratica tutto ciò che devi fare è aggiungere il tuo plugin qui :

                 ↓ package name
~/ .vim / pack / bundle / start / some-plugin
          ↑ packages dir          ↑ plugin dir

Su Windows : utilizzare ~\vimfiles\pack\invece di~/.vim/pack/

Per convenzione, abbiamo usato il nome del pacchetto "bundle" come directory che conterrà tutti i nostri plugin. Puoi usare qualsiasi nome tu voglia, e puoi anche mettere i tuoi plugin in directory di pacchetti separate se vuoi davvero.

Esempio: installazione di sensible.vim

mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git

Su Windows : utilizzare ~\vimfiles\pack\invece di~/.vim/pack/

Al prossimo avvio di Vim, il plug-in verrà caricato automaticamente.


3
Se uno .vimè sotto il controllo della versione, potrebbe essere meglio installare plugin con i sottomoduli di git; vedi shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton,

Se ci fosse una risposta basata sul tempo, questa sarebbe la risposta attualmente accettata a partire da oggi.
Amin NAIRI

12

Non dimentichiamo il grande e potente Vundle !

Vundle è un gestore di plugin completo, con funzionalità per:

  • Ricerca plugin (usando :PluginSearch)
  • Installazione plug-in (utilizzo :PluginInstall)
  • Aggiornamento plug-in (utilizzo :PluginUpdate)
  • Gestire il percorso di caricamento del plugin in .vimrc (commentare semplicemente le voci del plugin che non si desidera caricare)
  • Rimozione dei plugin che non desideri più (utilizzo :PluginClean)

Come puoi vedere, è molto simile al gestore di plug-in-vim menzionato da Carpetsmoker. Non so quale sia arrivato per primo, ma le loro API sembrano molto simili a me, così come il processo di installazione .


La cosa bella di Vundle è simile a vim-plug: puoi archiviare tutti i tuoi plugin nel tuo .vimrc, quindi quando installi su un nuovo server tutto ciò che ti serve è un'installazione Vundle + la tua .vimrcper installare tutto. Inoltre puoi commentare i tuoi plugin e 'pulirli', ma essere in grado di commentarli dopo mesi o anni quando hai dimenticato a lungo i loro nomi.
icc97,

Inoltre mi piace Vundle perché è relativamente adatto ai principianti. Dà praticamente solo un modo di fare le cose e funziona in modo simile a Sublime Text.
icc97,

1

Molto probabilmente, il tuo plugin sarà un singolo file .vim.

Se questo è il caso, ho cercato l'aiuto e ho sperimentato e capito quanto segue. Dall'interno di vim (modalità comando), digitare:

:set runtimepath

Questo ti mostrerà una serie di directory. Alcune di queste directory avranno una pluginsottodirectory. Mettere qualsiasi file .vim in una di queste pluginsottodirectory lo caricherà automaticamente quando avvierai vim da qualsiasi luogo.

Per me, su Ubuntu Linux, ho scoperto che ha /usr/share/vim/vim74/pluginfunzionato bene, da installare per tutti gli utenti. Potrebbe essere necessario il permesso di root per copiare un file qui (prefisso il tuo cpo il mvcomando con sudo).


3
IMHO questa non è la migliore pratica. Nota che hai vim74, il che significa che è specifico della versione, quindi l'aggiornamento a Vim 8.0, perderà quel plugin. Un modo più a prova di upgrade sarebbe quello di usarlo /etc/vim/(crearlo se non presente e aggiungere quel percorso runtimepathse non disponibile in /etc/vimrc)
grodzik

3
Per aggiungere al commento di @grodzik: Most likely, your plugin will be a single .vim filenon sono d'accordo. La stragrande maggioranza dei plugin viene fornito con un .txtfile contenente il documento ed è necessario generare i tag per ottenere un documento funzionale. Inoltre molti plugin hanno una autoloaddirectory. Penso che l'uso di un gestore di plugin sia una soluzione migliore rispetto alla gestione manuale di runtimepath
statox

-1 /usr/share/vim/vimXXè lo stock runtime e non è il luogo per la configurazione del sito / plugin. Invece, i config / plug-in del sito dovrebbero essere posizionati ovunque $VIMpunti su quel sistema (vedi :h vimfiles). Di solito, questo è /usr/share/vimil caso di Ubuntu e contiene collegamenti simbolici a /etc/vim. In generale, /usr/local/è il luogo di fatto per la configurazione del sito al di fuori del gestore pacchetti . Nota che Neovim fa uso di $XDG_(CONFIG|DATA)_DIRSe sitedirectory, fornendo migliori impostazioni predefinite per le configurazioni del sito.
ZeroKnight,

1

Vire sfrutta l'ultimo formato di pacchetto per installare plug-in e supporta Vim e Neovim. Non hai bisogno di sapere dove va tutto. Basta fornire un vimrc e Vire si prenderà cura di tutto il resto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.