2010-03-16 9 views
70

Emacs 24 looks like it will have un gestore pacchetti. Quali sono le opzioni di gestione dei pacchetti per Vim?Gestione pacchetto (plug-in) per Vim

+1

Che cos'è un gestore di pacchetti in questo contesto? Qualcosa come VimExplorer? –

+0

Qualcosa che installerà e gestirà plugin di terze parti da un repository centrale. – ntimes

+1

beh, vim ha un repo centrale (vim.org), un sistema di pacchetti (vimballs) e script che controllano se hai l'ultimo e il più grande (molti di loro, non richiamare i nomi ora) ... Che cosa vuoi di più ? :-) – Rook

risposta

12

sto usando una configurazione artigianale per ora, ma Continuo a ripetermi per dare a questo un colpo a volte (i link tutti hanno a che fare con lo stesso plugin):

  1. vim-addon-manager: gestire e aggiornare i plugin facilmente; un plugin di Marc Weber (@ vim.org)
  2. GitHub profile di Marc Weber; lui ha un certo numero di pronti contro termine VAM legati
  3. Vim-plugin-manager @ wiki Vim - il nome della pagina è diverso, ma in realtà lo stesso plug-in ha lo scopo

Ancora una volta, non ho davvero provato io stesso ancora, ma certamente sembra promettente.

5

Vim.org + Vimballs + GetLatestVimScripts è preffered in modo da gestire i plugin Vim al momento.

:h GetLatestVimScripts 

Le cose negative su di esso:

  • non supporta Windows (GetLatestVimScripts utilizza AFAIR wget)
  • vim.org ha un sacco di plugin che non sono GLVS e Vimball consapevoli.
+7

È possibile installare wget su Windows se è stato possibile installare Vim su Windows :) – wRAR

25

C'è anche pathogen.vim

http://www.vim.org/scripts/script.php?script_id=2332

Anche se non è esattamente quello che stai chiedendo per essa fornisce un mezzo per gestire le estrazioni dal vostro github e di bitbucket di.

Questo è buono in quanto separa la struttura della directory del plugin. In questo modo è possibile eseguire il checkout di un repository del plug-in e ottenere un controllo di versione appropriato piuttosto che affidarsi al manutentore per aggiornare il codice. Inoltre non si basa sull'autore del plugin per configurare/pacchetto come richiesto dalle altre opzioni citate.

Ci sono alcuni altri plugin su vim.org che svolgono questo compito, anche se non riesco a trovare in questo momento

81

ora sto usando VimPlug per my own configurazione Vim, e io sicuramente lo consiglio. L'installazione è molto semplice ed è veloce, carina ed efficace!

VimPlug video

ho usato per raccomandare Vundle in questa risposta. Ma Vundle non viene più mantenuto e ci sono alternative migliori.

+0

L'autore ha smesso di gestire vundle http://gmarik.info/blog/2014/02/04/why-i-stopped-contributing-to-vundle. puoi ancora vedere contributi su github ma potrebbe essere qualcuno più esperto a commentare sul futuro di vundle. –

+0

Sembra leggermente infastidito dal fatto che NeoBundle abbia copiato per lo più il suo codice invece di fare una forchetta .. Ma se non lo mantiene più, forse NeoBundle prenderà il suo posto? – Jostein

+0

Il repository GitHub mi sembra attivo. Inoltre, nei commenti del link nel tuo aggiornamento, sembra che qualcuno sia intervenuto per aiutarti. –

2

Ho scritto uno strumento denominato "vimpyre", potrebbe cercare, installare, disinstallare, aggiornare plug-in Vim utilizzando il servizio GitHub. https://github.com/pct/vimpyre

+3

FWIW, vimpyre non funziona più da quando github è passato alla nuova API. Sono anche molto avari riguardo la limitazione della velocità e il blocco delle query API non autenticate .. :( – synthesizerpatel

33

La gestione dei plugin per Vim era un problema nel modo tradizionale diffondendo i file di plug-in nell'intera directory di runtime di vim personale, ad es. ~/.vim per il sistema * nix. Una volta installato un plug-in, è difficile aggiornarlo perché non esiste un modo semplice per rimuovere i file di plug-in obsoleti che è un passaggio necessario.

All'inizio, mi piacerebbe elencare le mie esigenze personali su come uno strumento di gestione plug-in multa dovrebbe essere:

  1. saranno scritti in puro VimL
  2. deve installare plugin nella propria directory
  3. deve plugin autoload quando inizia Vim, bello per caricare, se necessario
  4. deve avere un metodo integrato di installazione, l'aggiornamento e la rimozione dei plugin
  5. bello avere un metodo integrato di ricerca necessari plugin
  6. devono essere in grado di dichiarare i plugin necessari in un file
  7. bello avere meccanismo di dipendenza solving

Ci sono un sacco di implementazioni là fuori (Vim-Scripts.org ha un comprehensive summary di tutti gli strumenti disponibili), Parlerò solo di alcuni strumenti importanti con il loro ordine di creazione.

vimball è stato il primo tentativo di risolvere il problema e in realtà era stato una soluzione semi-ufficiale che molti plugin sono stati forniti con un pacchetto *.vba insieme per un lungo periodo di tempo. Combinato con GetLatestVimScripts, questo ha costituito il modo tradizionale per la gestione del plugin vim.

Anche se, il problema ancora rimase fino Tim Pope s' pathogen (Github Repo), che pone ogni plugin nella propria directory e li carica all'avvio modificando il 'RTP (runtimepath)' del vim, si presentò. Questo è un grande progresso - combinato con vim-scripts.org hosted by git/github e altri strumenti (ad esempio vimmer), costituisce il modo moderno di gestire i plugin di vim. Ci sono molti articoli e video che parlano di questo argomento.

Essendo un plugin che gestisce i plugin, agente patogeno manca ancora alcune funzionalità di base come la ricerca, l'installazione, l'aggiornamento e la rimozione dei plugin. Di conseguenza, VAM(Vim-Addon-Manager) (Github Repo) è uscito. VAM fornisce quasi tutto il necessario per essere gestore plugin: inserisce i file plugin nella propria directory, carica i plug-in all'avvio di vim, cerca/installa/aggiorna/rimuove i plugin in ex riga di comando, scritto in puro VimL, ​​mantiene il proprio database di informazioni centrale dei plug-in, risolve anche le dipendenze del plugin. Sembra che VAM dovrebbe essere quello di cui abbiamo bisogno come gestore di plugin vim completo, ma dal mio punto di vista, l'approccio che VAM assume è un po 'poco elegante e talvolta sovradimensionato. Anche se è ancora un plugin meraviglioso e vale la pena usare.

Poi, ci fu di Tom link tplugin (Github Repo) che ha migliorato patogeno avendo plugin caricati solo quando relativi comandi o funzioni sono chiamate, simile a AsNeeded. Inoltre, ha una sorta di meccanismo di dipendenza che sembra bello.

Finnaly, Gmarik creato Vundle (Github Repo) che è un successore del patogeno di Tim Pope con l'ispirazione da Ruby di Bundler, fornisce una migliore interfaccia utente e funzionalità di gestione aggiuntive. Vundle to Vim è molto simile come Bundler a un progetto Ruby.Avendo bisogno di plugin dichiarati in vimrc, Vundle gestisce tutto il resto, compresa l'installazione/l'aggiornamento e la rimozione dei plugin, attraverso l'ex interfaccia a riga di comando. Ancora più importante, Vundle è implementato in puro VimL. Con l'aiuto di vundle, la gestione della configurazione di vim su più computer può essere eseguita con un semplice file vimrc. Come un moderno strumento di gestione dei plugin, Vundle si affida a Git e può installare il plugin direttamente da Github. Vundle fornisce anche un'interfaccia interattiva di fantasia per la ricerca e l'installazione di plugin.

Vundle non soddisfa pienamente le mie esigenze, ma si orienta nella giusta direzione, che sembra essere un buon punto di partenza per me.

Ecco a discussion e another comparison between vim plugin managers dall'autore del VAM MarcWeber.

+2

in seguito a questa ottima risposta, [Neobundle] (https://github.com/Shougo/neobundle.vim) sembra l'evoluzione logica da Vundle –

+0

Ottimo per avere un po 'di storia su come si sono evoluti i gestori di pacchetti vim - molto utile e felice di utilizzare Vundle perché non ho requisiti complessi. – RichVel

+0

@RichVel, al contrario, sono contento di usare VAM , visto che ho un requisito * molto * complesso: voglio che sia molto semplice da usare giorno per giorno.È persino abbastanza facile aggiungere nuovi plugin, nella remota possibilità che non siano tutti pronti nell'indice ([vim-pi] (https: // bitbucket.org/vimcommunity/vim-pi)) – jpaugh

3

Check out NeoBundle, l'ultimo gestore di pacchetti per vim. È un fork di Vundle.

+4

Quali sono le differenze tra i due? –

+0

Dal readme di NeoBundle: "Lo sviluppo attivo su NeoBundle si è interrotto, le uniche modifiche future saranno correzioni di bug". – icc97

Problemi correlati