Wie installiere ich ein Plugin in Vim / vi?

96

Wie installiere ich ein Plugin in Vim?

Ist es wichtig:

  • Ob ich vi oder Vim benutze?
  • Ob ich gVim benutze?
  • Welche Version von Vim verwende ich?
  • Was ist mein Betriebssystem?
elyashiv
quelle

Antworten:

65

Um ein Plugin zu installieren, müssen wir wissen, in welcher Form es vorliegt. Es kann sein:

Eine einzelne .vimDatei soll in das .vim/pluginVerzeichnis gestellt werden.

Eine Vimball-Datei kann installiert werden, indem Sie sie in Vim öffnen und ausführen :source %.

Eine Reihe von Dateien im Standardverzeichnislayout kann entweder durch Kopieren in .vimoder mithilfe eines Plugin-Paket-Managers installiert werden .

Plugins können von bestimmten Funktionen abhängen. Deshalb:

  • Es kann von Bedeutung sein, wenn Sie Vi oder Vim verwenden,
  • Es kann von Bedeutung sein, ob Sie gVim verwenden oder nicht (in gVim sind zum Zeitpunkt der Kompilierung in der Regel mehr Funktionen aktiviert als in Vim auf derselben Distribution).
  • Möglicherweise spielt es eine Rolle, welche Version von Vim Sie verwenden, da nach Ihrer Version von Vim möglicherweise eine Funktion hinzugefügt wurde.
  • Es kann von Bedeutung sein, auf welchem ​​Betriebssystem Sie sich befinden, insbesondere wenn das Plugin externe Befehle aufruft.

Für die meisten Plugins ist dies jedoch möglicherweise unerheblich.

muru
quelle
9
Es ist auf jeden Fall wichtig, ob Sie Vi verwenden - das Konzept der Plugins gibt es für Vi nicht. Natürlich wird das Tippen viauf einer modernen Box wahrscheinlich nur vimmit deaktivierten Funktionen gestartet . Ich bezweifle , dass viele Menschen den Zugang zu haben tatsächlich in diesen Tagen Vi.
tommcdo
37

Vim-Plug

Ich benutze gerne den vim-plug Plugin Manager.

Das Problem bei der manuellen Installation eines Plugins ist, dass es ziemlich schwierig ist , ein Plugin zu entfernen . Sie haben oft mehrere verschiedene Dateien in verschiedenen Verzeichnissen. Sie müssen sie manuell finden und entfernen.

Das Aktualisieren von Problemen ist ähnlich schwierig: Was passiert, wenn sie in autoload/old-name.vimumbenannt werden autoload/new-name.vim? Sie haben jetzt sowohl eine alte als auch eine neue Version eines Plugins.

vim-plugBehebt dieses Problem, indem jedes Plugin in einem eigenen Verzeichnis gespeichert wird. Es enthält auch einen Befehl zum einfachen Installieren / Entfernen eines Plugins, sodass Sie sich nicht mit dem Entpacken von Plugins und dergleichen herumärgern müssen.

Ein wesentlicher Vorteil von vim-plug gegenüber Pathogen ist, dass Sie mit vim-plug Plugins einfacher installieren und entfernen können. Alles, was Pathogen macht, ist, dass sich jedes Plugin in einem separaten, enthaltenen Verzeichnis befindet.

vim-plug ist auf git angewiesen ; für MS Windows möchten Sie msysgit .

Sie können Plugins in Ihrem vimrc folgendermaßen definieren:

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

Dann starte Vim neu und installiere die Plugins mit:

:PlugInstall

Dies wird die Plugins in ~/.vim/pluggedoder $HOME\vimfiles\pluggedfür MS Windows setzen.

Sie können dieses Snippet aus den FAQ vor dem plug#begin()Aufruf zu Ihrer vimrc-Datei hinzufügen :

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

Beachten Sie, dass curldies funktionieren muss. Dies ist fast immer unter Linux und OSX verfügbar, jedoch nicht unter MS Windows. Also wird dieser Trick dort nicht funktionieren ...

Um ein Plugin zu entfernen, entfernen Sie es aus der vimrc-Datei und führen Sie Folgendes aus:

:PlugClean

Beachten Sie, dass vim-plug die Installation von Skripten von der Vim-Skripten-Website nicht unterstützt. Diese Skripten werden jedoch auf GitHub gespiegelt , sodass dies nicht erforderlich ist.

Dies hat auch einige zusätzliche Vorteile, wie das einfachere Aktualisieren des Plugins und das Laden bei Bedarf, um eine bessere Leistung zu erzielen. Sie können Ihren vimrc auch einfach auf einen anderen Computer kopieren, ausführen :PlugInstallund alle Ihre Plugins haben.

Beachten Sie, dass es weitere Plug-in-Manager gibt. Ich benutze zufällig vim-plug. Siehe auch: Was ist der Unterschied zwischen den vim-Paketmanagern?

Martin Tournoij
quelle
1
Einer der wichtigsten Vorteile von vim-plug gegenüber anderen ist die parallele Installation / Aktualisierung von Plugins
r3bo0t
"Diese Skripte werden auf GitHub gespiegelt, es ist also nicht erforderlich, dies zu tun." Leider hat der Schaber längst aufgehört zu arbeiten. github.com/vim-scraper/vim-scraper/issues/…
Bluu
@Bluu Ja, ich habe den Betreuer des letzten Jahres kontaktiert. Es gibt einige technische Teile, die aktualisiert werden müssen, und niemand, der sich wirklich für diese Aktualisierung einsetzt: - / Es ist jedoch immer noch nützlich, da viele Skripte nicht allzu oft aktualisiert werden (insbesondere diejenigen, die nicht auf GitHub sind).
Martin Tournoij
25

Erreger

Pathogen ist ein Laufzeitpfad-Manager, der Plugins in Vim lädt. Es macht die Plugin-Installation einfach; So funktioniert das:

Hinweis: Wenn Sie Windows verwenden, ersetzen Sie ~/.vimdurch $HOME\vimfiles.

  1. Kopieren pathogen.vimnach ~/.vim/autoload/pathogen.vim.

  2. Erstellen Sie das ~/.vim/bundleVerzeichnis, falls es noch nicht existiert.

  3. Fügen Sie ganz am Anfang die folgende Zeile ein .vimrc:

    execute pathogen#infect()
    
  4. Sie sind fertig! Wenn Sie ein Plugin hinzufügen möchten, kopieren Sie einfach das gesamte Verzeichnis des Plugins in ~/.vim/bundleoder git clonedorthin. Zum Beispiel:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Warnung: Wenn Ihr Plugin in Form einer .vimDatei vorliegt , funktioniert es nicht mit Pathogen. Kopieren Sie es ~/.vim/pluginstattdessen nach (Sie müssen dieses Verzeichnis möglicherweise erstellen, wenn es nicht vorhanden ist).

Türknauf
quelle
5
Hinweis: Pathogen ist kein Plugin-Manager.
Romainl
oder git submodule add(anstelle von git clone), wenn Ihre VIM-Konfiguration bereits Teil Ihres eigenen Git-Projekts ist.
Martin York
@romainl was ist es dann?
RodrikTheReader
3
Es ist ein RunTimePath Manager. Da verwaltet es die runtimepathOption und das ist alles. Es geht überhaupt nicht darum, Plugins zu aktualisieren, hinzuzufügen, abzurufen oder zu entfernen.
Romainl
1
Siehe auch @romainls hervorragender Leitfaden zur Verwendung von Pathogen .
ICC97
23

Vim 8+ / Neovim

Version 8 führt einen neuen Paketmechanismus ein, der die zum Zeitpunkt des Schreibens (2017) vorhandenen Plug-in-Manager (Pathogen, Vim-Plug, Vundle usw.) weitgehend ersetzt.

Aus der Dokumentation :

Ein Vim- Paket ist ein Verzeichnis, das ein oder mehrere Plugins enthält

Ein Paketverzeichnis enthält zwei Unterverzeichnisse:

  • start/ - enthält Plugins, die automatisch geladen werden
  • opt/ - enthält Plugins, die bei Bedarf mit geladen werden :packadd

Es mag etwas kompliziert erscheinen, aber in der Praxis müssen Sie Ihr Plugin nur hier hinzufügen :

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

Unter Windows : Verwenden Sie ~\vimfiles\pack\anstelle von~/.vim/pack/

Standardmäßig haben wir den Paketnamen "bundle" als Verzeichnis verwendet, das alle unsere Plugins enthält. Sie können einen beliebigen Namen verwenden und Ihre Plugins in separaten Paketverzeichnissen ablegen, wenn Sie dies wirklich möchten.

Beispiel: Installation von sensible.vim

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

Unter Windows : Verwenden Sie ~\vimfiles\pack\anstelle von~/.vim/pack/

Beim nächsten Start von Vim wird das Plugin automatisch geladen.

Michael Kropat
quelle
3
Wenn jemand .vimunter Versionskontrolle steht, ist es möglicherweise besser, Plugins mit Git-Submodulen zu installieren. Siehe shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton
Wenn es eine zeitbasierte Antwort gäbe, wäre dies die aktuell akzeptierte Antwort von heute.
Amin NAIRI
12

Vergessen wir nicht das große und mächtige Vundle !

Vundle ist ein vollständiger Plugin-Manager mit Funktionen für:

  • Plugins suchen (mit :PluginSearch)
  • Plugins installieren (mit :PluginInstall)
  • Plugins aktualisieren (mit :PluginUpdate)
  • Verwalten des Plugin-Ladepfads in der .vimrc (einfach Plugin-Einträge auskommentieren, die nicht geladen werden sollen)
  • Nicht mehr benötigte Plugins entfernen (mit :PluginClean)

Wie Sie sehen, ähnelt es dem von Carpetsmoker erwähnten Vim-Plug-Manager. Ich weiß nicht, welche zuerst kam, aber ihre APIs sehen mir sehr ähnlich, ebenso wie der Einrichtungsprozess .

Cody Poll
quelle
Das Schöne an Vundle ist, dass Sie mit vim-plug all Ihre Plugins in Ihrem System speichern können. .vimrcWenn Sie also auf einem neuen Server installieren, brauchen Sie nur eine Vundle-Installation + Ihre .vimrc, um alles zu installieren. Außerdem können Sie Ihre Plugins auskommentieren und 'bereinigen', sie jedoch in Monaten oder Jahren wieder kommentieren, wenn Sie ihre Namen schon lange vergessen haben.
ICC97
Außerdem mag ich Vundle, weil es relativ anfängerfreundlich ist. Es gibt so ziemlich nur eine Möglichkeit, Dinge zu tun und funktioniert ähnlich wie Sublime Text.
ICC97
1

Höchstwahrscheinlich handelt es sich bei Ihrem Plugin um eine einzelne .vim-Datei.

In diesem Fall habe ich die Hilfe durchsucht und Folgendes ausprobiert und herausgefunden. Geben Sie in vim (Befehlsmodus) Folgendes ein:

:set runtimepath

Dies zeigt Ihnen eine Reihe von Verzeichnissen. Einige dieser Verzeichnisse haben ein pluginUnterverzeichnis. Wenn Sie eine .vim-Datei in eines dieser pluginUnterverzeichnisse legen, wird diese automatisch geladen, wenn Sie vim von einem beliebigen Ort aus starten.

Für mich unter Ubuntu Linux hat das /usr/share/vim/vim74/plugingut funktioniert, für alle Benutzer zu installieren. Möglicherweise benötigen Sie die Root-Berechtigung, um eine Datei hierher zu kopieren (stellen Sie Ihrem Befehl cpoder das Präfix voran ).mvsudo

Sternenmann
quelle
3
IMHO ist dies nicht die beste Vorgehensweise. Beachten Sie vim74, dass Sie haben , was bedeutet, dass es versionsspezifisch ist, so dass ein Upgrade auf Vim 8.0 dieses Plugin verliert. Ein Upgrade-sicherer Weg wäre, dies zu /etc/vim/runtimepath/etc/vimrc
tun
3
Um zu @grodzik Kommentar hinzuzufügen: Most likely, your plugin will be a single .vim fileIch bin nicht einverstanden. Die meisten Plugins werden mit einer .txtDatei geliefert, die das Dokument enthält, und Sie müssen die Tags generieren, um ein funktionsfähiges Dokument zu erhalten. Viele Plugins enthalten auch ein autoloadVerzeichnis. Ich halte die Verwendung eines Plug-in-Managers für eine bessere Lösung als die manuelle Verwaltung Ihres Laufzeitpfads
statox
-1 /usr/share/vim/vimXXist die Standardlaufzeit und nicht der Ort für Site-Konfiguration / Plugins. Stattdessen sollten Site-Konfigurationen / Plugins an allen $VIMStellen auf dem System platziert werden (siehe :h vimfiles). In der Regel ist dies /usr/share/vimbei Ubuntu der Fall und enthält Symlinks zu /etc/vim. Im Allgemeinen /usr/local/ist dies der De-facto-Ort für die Standortkonfiguration außerhalb des Paketmanagers . Beachten Sie, dass Neovim $XDG_(CONFIG|DATA)_DIRSund -Verzeichnisse verwendet und siteso bessere Standardeinstellungen für Site-Konfigurationen bietet.
ZeroKnight
1

Vire nutzt das neueste Paketformat für die Installation von Plugins und unterstützt Vim und Neovim. Sie müssen nicht wissen, wohin etwas geht. Stellen Sie einfach ein vimrc zur Verfügung und Vire kümmert sich um den Rest.

Genotrance
quelle