2010-03-16 16 views
70

Emacs 24 looks like it will have ein Paket-Manager. Welche Paketverwaltungsoptionen gibt es für Vim?Paket (Plugin) Management für Vim

+1

Was ist ein Paketmanager in diesem Kontext? So etwas wie VimExplorer? –

+0

Etwas, das Plugins von Drittanbietern von einem zentralen Repository installieren und verwalten wird. – ntimes

+1

naja, vim hat einen zentralen Repo (vim.org), ein Paketsystem (vimballs) und Skripte, die prüfen, ob du die neuesten und die tollsten hast (einige von ihnen erinnern sich jetzt nicht mehr an Namen) ... was willst du noch ? :-) – Rook

Antwort

12

Ich bin jetzt eine handgefertigte Einrichtung, aber ich mich immer wieder sagen, irgendwann diese eine Chance zu geben (die alle Verbindungen müssen mit dem gleichen Plugin zu tun):

  1. vim-addon-manager: verwalten und Plug-Ins einfach aktualisieren; ein Plugin von Marc Weber (@ vim.org)
  2. GitHub profile von Marc Weber; er hat eine Reihe von vam bezogenen repos
  3. Vim-plugin-manager @ Vim wiki - der Name der Seite ist anders, aber eigentlich das gleiche Plugin

Wieder einmal gemeint, habe ich nicht wirklich versucht, diese selbst Trotzdem, aber es sieht vielversprechend aus.

5

Vim.org + Vimballs + GetLatestVimScripts ist bevorzugt eingebaut, um vim plugins im Moment zu verwalten.

:h GetLatestVimScripts 

Die schlechte Dinge über sie:

  • nicht unterstützt Windows (GetLatestVimScripts wget AFAIR verwendet)
  • vim.org hat viele Plugins, die nicht bewusst GLV und Vimball sind.
+7

Sie können wget unter Windows installieren, wenn Sie Vim installieren konnten auf Windows :) – wRAR

25

Es gibt auch pathogen.vim

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

Obwohl es nicht genau das, was Sie dafür fragen ein Mittel bereitstellt Kassen von Ihrem Github ist und bitbucket des verwalten.

Das ist gut, da es die Verzeichnisstruktur des Plugins trennt. So können Sie ein Repository des Plugins auschecken und eine korrekte Versionskontrolle erhalten, anstatt sich auf den Betreuer zu verlassen, um den Code zu aktualisieren. Es ist auch nicht darauf angewiesen, dass der Autor des Plugins das Paket so aufbaut, wie es die anderen genannten Optionen erfordern.

Es gibt einige andere Plugins auf vim.org, die diese Aufgabe ausführen, obwohl ich sie nicht im Moment finde

81

ich jetzt VimPlug für my own Vim-Setup verwenden, und ich kann es auf jeden Fall empfehlen. Die Installation ist sehr einfach und schnell, schön und effektiv!

VimPlug video

I verwendet Vundle in dieser Antwort zu empfehlen. Aber Vundle wird nicht mehr gepflegt, und es gibt bessere Alternativen.

+0

Der Autor hörte auf, Vundle zu halten http://gmarik.info/blog/2014/02/04/why-i-stopped-contributing-to-vundle. Sie können immer noch Beiträge auf GitHub sehen, aber möglicherweise jemand mehr kenntnisreich kann die Zukunft von Vundle kommentieren. –

+0

Er scheint leicht genervt zu sein, dass NeoBundle meistens nur seinen Code kopiert hat, anstatt eine Gabel zu machen. Aber wenn er es nicht mehr pflegt, wird vielleicht NeoBundle das Kommando übernehmen? – Jostein

+0

Der GitHub Repo scheint mir aktiv zu sein. In den Kommentaren des Links in Ihrem Update scheint es, als wäre jemand aufgestanden, um zu helfen. –

2

Ich schrieb ein Tool namens "vimpyre", es könnte suchen, installieren, deinstallieren, vim Plugin mit GitHub-Service zu aktualisieren. https://github.com/pct/vimpyre

+3

FWIW, vimpyre funktioniert nicht mehr, seit github zur neuen API gewechselt ist. Sie sind auch sehr geizig bei der Ratenbegrenzung und blockieren nicht authentifizierte API-Abfragen .. :( – synthesizerpatel

33

Das Plugin-Management für vim war auf die traditionelle Art und Weise ein Schmerz, indem es Plugin-Dateien über das gesamte persönliche vim-Laufzeitverzeichnis verbreitete, z. ~/.vim für * nix system. Sobald ein Plugin installiert ist, ist es schwer zu aktualisieren, da es keine einfache Möglichkeit gibt, die veralteten Plugin-Dateien zu entfernen, was ein notwendiger Schritt ist.

Am Anfang, würde Ich mag meine persönlichen Anforderungen aufzulisten, wie ein feines Plugin-Management-Tool sein sollte:

  1. wird in reiner VimL geschrieben werden
  2. werden Plugins in ihr eigenes Verzeichnis installieren
  3. wird automatisch geladen, wenn Plugins vim beginnt, schön nach Bedarf zu laden
  4. eine eingebaute Methode zur Installation haben sollte, zu aktualisieren und zu entfernen Plugins
  5. schön, eine eingebaute Methode zu haben, Suche benötigt Plugins
  6. müssen in der Lage sein, benötigt Plugins da draußen in einer Datei
  7. schön Abhängigkeit Lösung Mechanismus

Es gibt viele Implementierungen zu deklarieren (Vim-Scripts.org hat eine comprehensive summary aller verfügbaren Werkzeuge), Ich werde nur über einige wichtige Werkzeuge sprechen, indem ich die Reihenfolge erstelle.

vimball war der erste Versuch, das Problem zu lösen und war eigentlich eine halb-offizielle Lösung, die viele Plugins mit einem Paket für eine lange Zeit zusammen ausgeliefert. Zusammen mit GetLatestVimScripts bildete dies die traditionelle Art und Weise für das vim-Plugin-Management.

Obwohl blieb das Problem noch bis Tim Pope ‚s pathogen (Github Repo), die jedes Plugin in ein eigenes Verzeichnis platziert und lädt sie beim Start durch die Modifikation‚rtp (runtimepath)‘des vim, auftauchten. Dies ist ein großer Fortschritt - kombiniert mit vim-scripts.org hosted by git/github und anderen Tools (zB vimmer), bildet es die moderne Art der Verwaltung von vim plugins. Es gibt viele Artikel und Videos, die über dieses Thema sprechen.

Als Plugin, das die Plugins verwalten, ist pathogen noch einige Kernfunktionen wie die Suche fehlt, installieren, zu aktualisieren und die Plug-in zu entfernen. Als Ergebnis trat VAM(Vim-Addon-Manager) (Github Repo) heraus. VAM stellt fast alles zur Verfügung, was benötigt wird, um plugin manager zu sein: plugs plugs in ein eigenes Verzeichnis zu laden, plugins beim vim startup, suchen/installieren/update/entfernen plugins in ex command line, geschrieben in pure VimL, ​​verwaltet seine eigene plugins zentrale info datenbank, löst sogar die Plugin-Abhängigkeiten auf. Es scheint, als ob VAM der voll ausgestattete vim plugin manager sein sollte, aber aus meiner Sicht ist der Ansatz, den VAM annimmt, ein wenig unelegant und manchmal überdesignt. Obwohl es immer noch ein wunderbares Plugin ist und es sich lohnt es zu verwenden.

Dann kam Tom Link zur tplugin (Github Repo), der nur durch Plugins Erreger verbessert, wenn Befehle oder Funktionen aufgerufen werden verwandt geladen, ähnlich wie AsNeeded. Es hat auch eine Art Mechanismus zur Abhängigkeitslösung, der nett zu sein scheint.

Finnaly, erstellt Gmarik Vundle (Github Repo), das ein Nachfolger von Tim Pope des Erregers mit Inspiration von Rubys ist Bundler, es bietet eine bessere Benutzeroberfläche und zusätzliche Management-Funktionalität. Vundle to Vim ist ähnlich wie Bundler zu einem Ruby-Projekt.Nachdem Plugins in vimrc deklariert wurden, kümmert sich vundle um den Rest, einschließlich der Installation/Aktualisierung und Entfernung von Plugins über die ex-Befehlszeilenschnittstelle. Am wichtigsten ist, dass vundle in reinem VimL implementiert ist. Mit Hilfe von Vundle konnte die Verwaltung der vim-Konfiguration auf mehreren Computern mit nur einer einfachen vimrc-Datei durchgeführt werden. Als modernes Plugin-Management-Tool setzt vundle auf Git und kann das Plugin direkt von Github installieren. Vundle bietet auch eine ausgefallene interaktive Schnittstelle zum Suchen und Installieren von Plugins.

Vundle erfüllt zwar meine Anforderungen nicht vollständig, aber es geht in die richtige Richtung, was ein guter Ausgangspunkt für mich zu sein scheint.

Hier sind a discussion und another comparison between vim plugin managers von VAM des Autors MarcWeber.

+2

nach dieser großen Antwort scheint [Neobundle] (https://github.com/Shougo/neobundle.vim) die logische Entwicklung von Vundle –

+0

Großartig, um etwas Geschichte zu haben, wie vim Paketmanager sich entwickelt haben - sehr nützlich, und froh, dass ich Vundle verwende, da ich keine komplexen Anforderungen habe. – RichVel

+0

@RichVel, Umgekehrt bin ich froh, dass ich VAM benutze Da ich eine * sehr * komplexe Anforderung habe: Ich möchte, dass es sehr einfach ist, jeden Tag zu verwenden.Es ist sogar ziemlich einfach neue Plugins hinzuzufügen, wenn nicht alle im Index bereit sind ([vim-pi] (https: // bitbucket.org/vimcommunity/vim-pi)) – jpaugh

3

Auschecken NeoBundle, der ultimative Paket-Manager für vim. Es ist eine Gabel von Vundle.

+4

Was sind die Unterschiede zwischen den beiden? –

+0

Aus der NeoBundle-Liesmich: "Die aktive Entwicklung auf NeoBundle hat aufgehört. Die einzigen zukünftigen Änderungen werden Fehlerbehebungen sein." – icc97