vim
Vim verlengen
Zoeken…
Opmerkingen
Een plug-in is een script of een set scripts die het standaardgedrag van Vim verandert, door niet-bestaande functies toe te voegen of door bestaande functies uit te breiden.
Vaak toegevoegde "niet-bestaande functies" omvatten:
- commentaar,
- inspringen detectie,
- automatisch aanvullen,
- fuzzy-matching,
- ondersteuning voor een specifieke taal,
- enz.
Vaak uitgebreide "bestaande functies" omvatten:
- omni-completion,
- tekst-objecten & bewegingen,
- rukken en zetten,
- statusregel,
- zoeken en vervangen,
- buffer / venster / tabblad schakelen,
- vouwen,
- enz.
Hoe plugins werken
Een plug-in zou zichzelf kunnen presenteren als een enkel bestand met 30 regels vimscript of als 20 MB vimscript / python / ruby / wat dan ook opgesplitst in veel bestanden in een dozijn mappen die afhangt van een aantal externe tools.
De eerste is duidelijk eenvoudig te installeren en te beheren, maar de laatste kan een behoorlijke uitdaging zijn.
Het principe
De optie 'runtimepath'
vertelt Vim waar runtime-scripts moeten worden gezocht. De standaardwaarde maakt Vim look voor scripts in de volgende directories in deze volgorde:
op UNIX-achtige systemen
-
$HOME/.vim/
-
$VIM/vimfiles/
-
$VIMRUNTIME/
-
$VIM/vimfiles/after/
-
$HOME/.vim/after/
-
op Windows
-
$HOME/vimfiles/
-
$VIM/vimfiles/
-
$VIMRUNTIME/
-
$VIM/vimfiles/after/
-
$HOME/vimfiles/after/
-
Van de bovenstaande mappen, installeer alleen plug-ins in vetgedrukte. De anderen zullen instabiliteit veroorzaken zonder goede reden. Het installeren van een plug-in komt erop neer dat elk van de componenten in de juiste map onder $HOME/.vim/
of $HOME/vimfiles/
.
De handmatige methode
Plug-in voor één bestand
Plaats het bestand onder $HOME/.vim/plugin
of $HOME/vimfiles/plugin
Dit zou de plug-in veroorzaken bij het opstarten van Vim. Nu kan de gebruiker alles gebruiken wat erin is gedefinieerd. Als de plug-in echter moet worden geactiveerd, moet de gebruiker het commando zelf uitvoeren wanneer hij het wil gebruiken, of het commando toevoegen aan .vimrc
Bundel
Een bundel is een mapstructuur die de plug-in gebruikt. Het bestaat uit alle bestanden van de plug-in onder de juiste submappen.
Om een dergelijke plug-in te installeren, moeten de submappen worden samengevoegd met hun tegenhangers in $HOME/.vim/plugin
. Deze benadering leidt echter tot het mixen van de bestanden van verschillende plug-ins in dezelfde mappen en kan mogelijk leiden tot problemen met de naamruimte.
Een andere benadering is om de hele map naar $HOME/.vim/bundle
te kopiëren.
Bij gebruik van deze aanpak moet er ten minste één .vim
bestand zijn in de map $HOME/.vim/bundle/autoload
. Deze bestanden zouden bij het opstarten van VIM afkomstig zijn.
Opmerking: Afhankelijk van het besturingssysteem van de gebruiker kan het voorvoegsel van alle paden $HOME/vimfiles
. Zie Hoe plug-ins werken voor meer informatie
VAM
https://github.com/MarcWeber/vim-addon-manager
Vundle
Vundle is een plug- inbeheerder voor Vim.
Vundle installeren
(Volledige installatiegegevens zijn te vinden in de Vundle Quick Start )
Installeer Git en kloon Vundle in
~/.vim/bundle/Vundle.vim
.Configureer plug-ins door het volgende aan uw
.vimrc
toe te voegen, plug-ins toe te voegen of te verwijderen indien nodig (de plug-ins in de lijst zijn louter ter illustratie)set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on "place non-Plugin stuff after this line
Plug-ins installeren: door Vim te starten en uit te voeren
:PluginInstall
.
Ondersteunde plug-informaten
Hierna volgen voorbeelden van verschillende ondersteunde formaten. Houd Plugin-opdrachten tussen vundle#begin
en vundle#end
.
Plugin locatie | Gebruik |
---|---|
plug-in op GitHub | Plugin 'tpope/vim-fugitive' |
plug-in van http://vim-scripts.org/vim/scripts.html | Plugin 'L9' |
Git-plug-in niet gehost op GitHub | Plugin 'git://git.wincent.com/command-t.git' |
git repo's op je lokale machine (bijv. wanneer je aan je eigen plug-in werkt) | Plugin 'file:///home/gmarik/path/to/plugin' |
Het sparkup vim-script bevindt zich in een submap van deze repo genaamd vim. Passeer het pad om het runtimepath correct in te stellen. | Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} |
Installeer L9 en vermijd een naamconflict als u al ergens anders een andere versie hebt geïnstalleerd. | Plugin 'ascenator/L9', {'name': 'newL9'} |
Werken aan een gedeeld account, bijvoorbeeld op een clusterhoofdknooppunt, kan problemen veroorzaken op het punt van schijfgebruik door de .vim
directory. Er zijn een aantal pakketten die een aanzienlijke hoeveelheid schijfruimte in beslag nemen, bijvoorbeeld YCM . Kies dus verstandig uw Vundle
plugin-directory, en het is heel gemakkelijk om dit te doen door rtp
. En ook als je van plan bent om een vim-plug-in te installeren, doe dan niet direct git clone
in de bundle
. Gebruik de Vundle-manier.
De toekomst: pakketten
Zie :help packages
.
pathogeen
vim-pathogen is een runtimepath
manager gemaakt door Tim Pope om het gemakkelijk te maken om plug-ins en runtime-bestanden in hun eigen privé-mappen te installeren.
Pathogen installeren
Zet pathogen in
~/.vim/bundle
(hier met Git, maar het is niet verplicht):git clone https://github.com/tpope/vim-pathogen.git
Voeg de volgende regels toe aan de bovenkant van uw
.vimrc
:" enable vim-pathogen runtime bundle/vim-pathogen/autoload/pathogen.vim execute pathogen#infect()
- de
runtime
instructie geeft het pad naar het autoload-script vanvim-pathogen
; -
execute pathogen#infect()
initieert het.
Eenmaal gestart, start Pathogen automatisch door de mappen in ~/.vim/bundle
en laadt de plug-in van elk van hen.
Pathogen gebruiken
- Plaats de hoofddirectory van uw plug-in in
~/.vim/bundle/
om deze beschikbaar te maken de volgende keer dat u Vim start. - Uitvoeren
:Helptags
om de documentatie van uw nieuwe plug-in te indexeren.
Voordelen
- Elke plug-in bevindt zich in zijn eigen map onder
~/.vim/bundle/
. - Uw
.vimrc
blijft vrij van de configuratie die nodig is om plug-ins te laden.
De inspanning die nodig is om een plug-in te "beheren" is dus beperkt tot:
- zet de map op het hoogste niveau onder
~/.vim/bundle/
om het te installeren , - vervang de map op het hoogste niveau om hem bij te werken ,
- verwijder de map op het hoogste niveau om deze te verwijderen .
Hoe je die drie acties uitvoert (handmatig, via een automatiseringstool, met Git / Svn / Hg / wat dan ook ...) is helemaal aan jou.